pptp的vpn客户端拨通后可以ping通无法打开网页

在Linux配置好pptp的vpn客户端后,可以成功连上

$ sudo pptpsetup –create comsenz –server $VPN_IP –username $VPN_USER –password “$VPN_PASSWD” –encrypt –start
Password:
Using interface ppp0
Connect: ppp0 <--> /dev/pts/3
CHAP authentication succeeded
MPPE 128-bit stateless compression enabled
Cannot determine ethernet address for proxy ARP
local IP address 10.0.0.70
remote IP address 10.0.0.252

手动添加路由

route add -net 10.0.1.0/24 gw $VPN_GW

发现可以ping通目标主机,却无法正常访问其web、ssh服务,google了一下发现可能是MTU值设置不当导致的。pptp客户端可以在 /etc/ppp/options 里进行设置,于是将初试的MTU由1496反复调整至396后才正常。

$ ifconfig ppp0 | grep mtu
ppp0: flags=4305 mtu 396


vpn客户端控制脚本

$ cat /etc/rc.d/rc.dzvpn
#!/bin/sh
#
# /etc/rc.d/rc.dzvpn
#
# Start/stop/restart Comsenz VPN(PPTP)
#

VPN_IP=YOUR IP
VPN_USER=YOUR USER
VPN_PASSWD=YOUR PASSWD
VPN_GW=YOUR GW # todo

dzvpn_start() {
pptpsetup –create comsenz –server $VPN_IP –username $VPN_USER –password “$VPN_PASSWD” –encrypt –start
route add -net 10.0.1.0/24 gw $VPN_GW
}

dzvpn_stop() {
killall pppd
}

dzvpn_restart() {
dzvpn_stop
sleep 1
dzvpn_start
}

case “$1” in
‘start’)
dzvpn_start
;;
‘stop’)
dzvpn_stop
;;
‘restart’)
dzvpn_restart
;;
*)
echo “usage $0 start|stop|restart”
esac

参考
Linux 通过 pptp 连接 VPN 网络
搭建ppp之类的服务器,千万不能忽略mtu值的设定
单网卡 Ubuntu 服务器打造 PPTP Server

发表评论