Daily Archives: 2014年12月30日

pptp搭建的vpn代理上网很慢 终于解决

068

 

用linode主机搭建的pptp的vpn,北京联通一直存在可以链接上,只能偶尔上个百度,其他的网站基本打不开,更不要说翻墙看世界了。由于使用移动网络链接VPN没有任何问题,百度北京联通 pptp很多反馈说 联通屏蔽了pptp协议的VPN,最近无意中看到一个VPN优化上网慢问题的文章,尝试了一下,奇迹出现了。

优化很简单,在iptables中增加一个规则即可:

 

/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356

原因分析

=====在断开vpn链接的情况下:
在windowsXP下用ping -f -l XXXXXX 192.168.0.1一步一步测试(XXXXXXX为MTU大小,可以从1500开始,逐渐减小,知道可以ping通)
我们可以得到可以ping通的MTU最大为1426;
=====在连接vpn的前提下
在windowsXP下用ping -f -l XXXXXX 192.168.0.1一步一步测试(XXXXXXX为MTU大小,可以从1500开始,逐渐减小,知道可以ping通)
我们可以得到可以ping通的MTU最大为1372; 超过这个数则不能通,
====拨通vpn,在服务器上用netstat –i查看接口,得到
Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500   0 102528561      0      0      0 194391413      0      0      0 BRU
eth1   1500   0 519820535    954 11553    924 208798037      0      0      0 BRU
lo    16436   0   151062      0      0      0   151062      0      0      0 LRU
ppp0   1396   0       19      0      0      0        8      0      0      0 OPRU 可知ppp的最大mtu为1396,当然,对应的mss应为(mtu-20字节的IP头部+20字节的TCP 头部=)1356 【小知识1】计算机网络中的MSS:
MSS: Maximum Segment Size 最大分段大小
MSS最大传输大小的缩写,是TCP协议里面的一个概念。
MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在 实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会 根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。