目前***隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5,我们这里只介绍点到点隧道协议PPTP。
PPTP协议原理
PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。
环境准备
centos7服务器 (这里我使用阿里云,vpc专有网络。)
windows10 客户端 (测试***使用)
1、检查服务器是否支持PPTP协议
modprobe ppp-compress-18 && echo ok
2.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
-
更新yum源、安装软件包
yum install epel-release -y
yum install ppp pptpd ppp-devel iptables iptables-services -y
4.修改配置文件
vim /etc/pptpd.conf
localip 192.168.0.1 #内网ip地址(服务器的eth0网卡地址,不是服务器公网地址)
remoteip 192.168.0.10-150 #自定义分配给客户端的网段
vim /etc/ppp/options.pptpd
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 223.5.5.5
ms-dns 114.114.114.114
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
logfile /var/log/pptpd.log
vim /etc/ppp/chap-secrets 配置账号、密码
#在文件的末尾行添加自己的登录账号,添加登录账号的格式:用户名 pptpd 密码 *
test pptpd 12345 *
5.配置IPv4转发
echo 'net.ipv4.ip_forward=1' >>/etc/sysctl.conf
sysctl -p 执行命令立即生效
6.配置防火墙,开启数据路由(关键的一步,不配置防火墙,无法实现网络访问)
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE
service iptables save 保存配置
systemctl restart iptables 重启防火墙
配置阿里云白名单
开启TCP的1723端口
开启GRE协议
修改 vim /etc/ppp/ip-up 文件
重启服务
systemctl restart pptpd
systemctl restart iptables
7.配置windows10 客户端
内网地址连接阿里云服务器