一,使用gre技术搭建vpn,适用linux环境

外网ip 192.168.2.100 192.168.2.200
私有ip 10.10.10.100 10.10.10.200
两台主机互相设置
————————————————————————————————————————————
modprobe ip_gre //内核中开启gre功能
lsmod | grep gre //检查,可以看到gre字样信息即可
ip tunnel add tun0 mode gre remote 192.168.2.200 local 192.168.2.100 //创建vpn隧道,名字tun0,mode是使用gre技术,与2.200连接,自己ip是2.100,如果错误可以删除重配 ip tunnel del tun0
ip addr add 10.10.10.100/8 peer 10.10.10.200/8 dev tun0 //在tun0隧道(dev)用私有ip地址,本机是10.100,对面(peer)是10.200,如果错误可以删除ip addr del 10.10.10.100/8 peer 10.10.10.200/8 dev tun0
ip link set tun0 up //激活tun0
ip addr show tun0 //查看
image.png

  1. modprobe ip_gre
  2. lsmod | grep gre
  3. ip tunnel add tun0 mode gre remote 192.168.2.100 local 192.168.2.200
  4. ip addr add 10.10.10.200/8 peer 10.10.10.100/8 dev tun0
  5. ip link set tun0 up
  6. ip addr show tun0
  7. ping 10.10.10.100

二,使用pptpd搭建vpn,支持windows环境

1,安装vpn工具
yum -y install pptpd
2,vim /etc/pptpd.conf 按G到末尾,删除下列两行开头#注释
—————————————————————-
localip 192.168.0.120 //本机ip
remoteip 10.10.10.10-18 //给windows客户机分配的ip(vpn隧道内使用的地址,可以自定义)
————————————————————————
3,修改配置,定义dns
vim /etc/ppp/options.pptpd
8.8.8.8为谷歌的,去掉下列两行开头的#
—————————————————————-
ms-dns 10.0.0.1
ms-dns 10.0.0.2
—————————————————————————
4,定义windows客户机的用户名和密码
vim /etc/ppp/chap-secrets
tom 123456 //另起一行,用户tom,密码123456,可添加多行
5,开启服务并检查
systemctl restart pptpd
netstat -ntulp | grep pptpd
6,使用windows系统设置vpn
windows桌面左下角搜索vpn,设置并且连接,显示已连接或者vpn获取到linux分配的ip则成功
image.png
image.png

三,使用xl2tp搭建vpn,支持windows环境,更安全,测试失败

1,安装加密工具

yum -y install libreswan

2,复制配置文件到ipsec.d目录,并修改配置

cp myipsec.conf /etc/ipsec.d/
vim /etc/ipsec.d/myipsec.conf
————————————————————以下myipsec.conf文件所有内容,修改本机ip即可
conn IDC-PSK-NAT
rightsubnet=vhost:%priv
also=IDC-PSK-noNAT

conn IDC-PSK-noNAT
authby=secret
ike=3des-sha1;modp1024
phase2alg=aes256-sha1;modp2048
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=3h
type=transport
left=192.168.0.120
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
——————————————————————————————-

3,修改配置,添加加密信息

vim /etc/ipsec.secrets,按o另起一行,添加下列内容
192.168.0.120 %any: PSK “randpass” //本机ip,允许任何客户机连接本服务器,PSK是预共享秘钥,randpass是密码,windows客户连接vpn服务器时需要该密码

4,安装xl2tpd并修改配置

yum -y install xl2tpd
vim /etc/xl2tpd/xl2tpd.conf
——————————————————————————32行左右
ip range = 10.10.10.10-10.10.10.18
local ip = 192.168.0.120
—————————————————————————————

5,修改配置文件

vim /etc/ppp/options.xl2tpd
————————————————————————————————————————
#crtscts //注释掉第10行左右,某些版本已经注释了#obsolete: crtscts
#lock //注释掉第16行左右,某些版本已经注释了 #obsolete: lock
require-mschap-v2 //删除22行左右# require-mschap-v2的#以及空格启用加密
—————————————————————————————

6,定义windows客户机的用户名和密码

vim /etc/ppp/chap-secrets
tom 123456 //另起一行,用户tom,密码123456,可添加多行

7,开启两个服务

systemctl start ipsec
systemctl start xl2tpd
netstat -ntulp | grep :500
netstat -ntulp | grep xl2tpd

8,使用windows系统设置vpn

预共享秘钥填randpass
image.png
image.png
image.png
上图问题解决方法可百度,或者重装个新点的系统

四,翻墙

echo 1 > /proc/sys/net/ipv4/ip_forward
firewall-cmd —set-default-zone=trusted
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 > -j SNAT —to-source 201.1.2.10