本文以CentOS 7实例为例,配置PPTP VPN服务端到客户端的连接,仅用于示例和操作指引,请您根据实际需要操作。使用PPTP服务存在安全隐患,单击查看详情,您需要考虑由此产生的影响及问题。
配置PPTP VPN需要使用TCP协议的1723通信端口。您需要在安全组中放行TCP协议的1723端口,安全组的具体配置规则请参见添加安全组规则。
按照如下操作步骤,配置CentOS PPTP服务端。
执行如下命令,安装软件。
yum install -y ppp pptpd
系统显示类似如下。
vi /etc/pptpd.conf
命令, 编辑配置文件,删除下列两行命令符前面的“#”,保存后退出。 #localip 192.168.0.1系统显示类似如下。
#remoteip 192.168.0.234-238,192.168.0.245
说明:localip和remoteip分别是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
XXX.XXX.XXX.XXX
为您的实例公网IP地址。 iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source XXX.XXX.XXX.XXX
service iptables save
说明:此时PPTP还未成功运行,所以当您重启PPTP服务时,系统会提示“Shutting down pptpd [FAILED]”,并发出警告。您可以忽略提示和警告,再次使用以下命令重启PPTP服务,警告信息就会消失。
systemctl restart pptpd
执行如下命令,重启iptables。
systemctl start iptables
chkconfig --add pptpd
chkconfig pptpd on
chkconfig --add iptables
chkconfig iptables on
至此,您的PPTP VPN服务端已安装结束。您可以在Windows客户端的 网络和共享中心 设置新的连接或网络,即可通过VPN访问网络。
本文以CentOS 6.8为例配置PPTP客户端。
yum install -y ppp pptp pptp-setup系统显示类似如下。
pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start
系统显示类似如下。说明:[$IP]、[$User]、[$Password]为VPN服务端的IP地址、用户名和密码。
192.168.0.234
的客户端地址时,执行如下命令,可以看到ppp0网卡。 ifconfig | grep -A 10 ppp系统显示类似如下。
ip route replace default dev ppp0系统显示类似如下。
在使用过程,可能会出现如下常见问题。
问题原因:一般是MTU设置不正确导致的。
解决方案:
方案一:在配置VPN的CentOS服务器中执行如下命令,此方案可以临时生效,如果您需要长期生效的方案,请参考 方案二。
ifconfig ppp0 mtu 1472
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
/etc/ppp/peers/testvpn
配置文件中添加noipdefault参数。执行如下命令重启客户端。重新连接后通常可获取到正确的IP地址。
poff testvpn
pon testvpn
说明:重启客户端时,noipdefault参数可能会被服务端传递过来的参数覆盖。如果noipdefault被覆盖,您需要检查服务端的配置。