说明:
本文以 CentOS 实例为例配置 PPTP VPN,仅用于示例和操作指引,请您根据实际需要操作。使用 PPTP 服务存在安全隐患,点击查看详情,您需要考虑由此产生的影响及问题。
前提条件
配置 PPTP VPN 需要使用 TCP 1723 通信端口。您需要 在安全组中放行 TCP 1723 端口。
配置 CentOS PPTP 服务端
安装软件
使用命令
yum install -y ppp pptpd
安装软件。
配置 pptpd 文件
运行
vi /etc/pptpd.conf
编辑配置文件,删除下列两行命令符前面的#
,保存后退出。localip 192.168.0.1
remoteip 192.168.0.234-238
localip 192.168.0.1 和 remoteip 192.168.0.2-200 分别是 VPN 的网关地址和 VPN 拨号获取地址段。您可以根据需要调整。
运行
vi /etc/ppp/options.pptpd
将 ms-dns 修改为 223.5.5.5 和 223.6.6.6。保存后退出。ms-dns 10.0.0.1
ms-dns 10.0.0.2
ms-dns 223.5.5.5
ms-dns 223.6.6.6
IP 地址 223.5.5.5 和 223.6.6.6 是阿里云的公共 DNS 服务器地址,您可以根据需要调整为其它公共 DNS 服务地址。
运行
vi /etc/ppp/chap-secrets
设置 pptpd 的用户名和密码。根据需要添加账号,一行只添加一个用户账号。按照用户名 pptpd 密码 IP地址
的格式输入,每一项用空格隔开。保存后退出。示例:test pptpd 123456 *
,其中*
表示所有IP。Secrets for authentication using CHAP
client server secret IP addresses
test pptpd 123456 *
运行
vi /etc/ppp/ip-up
设置最大传输单元 MTU,在命令符[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@”
后面添加ifconfig ppp0 mtu 1472
。/etc/ppp/ip-up. ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
ifconfig ppp0 mtu 1472
修改内核参数设置
运行
vi /etc/sysctl.conf
编辑配置文件,添加net.ipv4.ip_forward = 1
的配置,保存后退出。运行
sysctl -p
使修改后的参数生效。
添加防火墙规则
运行
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
添加 iptables 转发规则。运行
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source XXX.XXX.XXX.XXX
添加 NAT 转发规则,其中 XXX.XXX.XXX.XXX 为您的实例公网 IP 地址。运行
iptables-save
保存设置。
配置 PPTP 服务
运行
systemctl restart pptpd
重启 PPTP 服务。注意:
此时 PPTP 还未成功运行,所以当您使用重启 PPTP 服务时,系统会提示Shutting down pptpd [FAILED]
,并发出警告。您可以忽略提示和警告,再次使用以上命令重启 PPTP 服务,警告信息就会消失。运行
systemctl restart iptables
重启 iptables。运行如下命令设置 pptpd 和 iptables 自启动。
systemctl enable pptpd.service
systemctl enable iptables.service
至此,您的 PPTP VPN 服务端安装结束了。您可以在 Windows 客户端的 网络和共享中心 设置新的连接或网络,即可通过 VPN 访问网络。
配置 CentOS PPTP 客户端
此处以 CentOS 7.4 为例配置 PPTP 客户端。
运行
yum install -y ppp pptp pptp-setup
安装软件包。运行
pptpsetup --create test --server IP --username 用户名 --password 密码 --encrypt --start
连接 VPN 服务端。注意: 您需要填写实际配置 VPN 服务端的 IP 地址、用户名和密码。
当系统提示已经被分配了 192.168.0.234 的客户端地址时,运行
ifconfig | grep -A 10 ppp
可以看到 ppp0 网卡。运行
ip route replace default dev ppp0
增加默认路由。
增加路由后,您就可以访问 VPN 服务器了。
常见问题
浏览器无法打开网页
现象:搭建 PPTP VPN 后,测试可以连接,可以 ping 通网站域名,但浏览器无法打开网页。
分析:一般是 MTU 设置不正确导致的。
方案A:在配置 VPN 的 CentOS 服务器中运行
ifconfig ppp0 mtu 1472
。注意:上述解决方案可以临时生效,如果您需要长期生效的方案,参考方案 B。
方案B:
运行
vi /etc/ppp/ip-up
在 /etc/ppp/ip-up 文件中增加ifconfig ppp0 mtu 1472
。/etc/ppp/ip-up. ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
ifconfig ppp0 mtu 1472
测试:
获取到错误的 IP 地址
现象:客户端成功连接上 VPN 后,获取到错误的地址。获取的地址不是 VPN 服务端分配的地址,而是云服务器 ECS 的内网网卡地址,如图:
分析:如果出现这种情况,假设配置的 VPN 客户端配置名称是 testvpn,可以参照如下步骤尝试处理。
方案:
在 ppp 客户端配置文件 /etc/ppp/peers/testvpn 中添加 noipdefault 参数。
使用如下命令重启客户端。重新连接后通常可获取到正确的 IP 地址。
poff testvpn
pon testvpn
注意:
重启客户端时,noipdefault
参数可能会被服务端传递过来的参数覆盖掉。如果noipdefault
被覆盖,您需要检查服务端的配置。
转载至https://help.aliyun.com/knowledge_detail/41345.html