VPN客户端连接Linux服务端访问慢现象解决
发布:smiling 来源: PHP粉丝网 添加日期:2015-05-07 14:25:15 浏览: 评论:0
今天使用VPN客户端连接Linux服务端访问慢问题了,那么碰到这类问题我们要如何来处理?具体就和小编一起来看看吧,希望文章能够帮助到大家.
我的Vyatta运行一直很好,用ROS和Cisco做Tunnel连接到Vyatta跑OSPF用来翻墙,效果一直不错,可是当使用Windows连接vpn时,经常打开网页超时,但ping各处均正常,所以怀疑是MTU或MSS的问题.
经过几番周折,发现网页超时时,Vyatta日志内出现大量异常:
Jan 12 21:02:39 Xirang kernel:[4838172.516489] pptp2:ppp:compressor dropped pkt
然后学习了一下,出现这个问题是因为,Windows VPN客户端的MPPE(Microsoft point-to-point Encryption)加密需要占用4个字节长度,原始报文加上MPPE报文头开销会超过Linux服务端pptp接口MTU,最终导致报文过大被丢弃.
所以解决问题的本质就是增加Linux服务端pptp接口MTU.
解决办法有三种:
编辑pptpd源码,增加MTU,使用脚本,在pptp接口连接up以后增加MTU,不使用MPPE加密;
第一种虽然从根本上解决了问题,但是由于水平问题放弃了,第三种由于取消了传输加密,心理上觉得不安全,也放弃了.
从网上找到了第二种解决办法,如下:
- /etc/ppp/ip-up.d/mppefixmtu.sh
- #!/bin/sh
- CURRENT_MTU=”`ip link show $1 | grep -Po ‘(?<=mtu )([0-9]+)’`”
- FIXED_MTU=”`expr $CURRENT_MTU + 4`”
- ip link set $1 mtu $FIXED_MTU --phpfensi.com
确保脚本具有可执行权限:
chmod 755 /etc/ppp/ip-up.d/mppefixmtu.sh
这样MTU加上4以后就可以兼容Windows的MPPE了.
Tags: VPN客户端 Linux服务端
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)