PPTPD错误:kernel: ppp: compressor droppedpkt

1、     尝试手动配置mtu值。

# ifconfig ppp0 mtu 1400

改完确实解决了暂时性问题,但是重启后依然会恢复到1396。
 
也可以通过shell脚本处理:
vim set_mtu.sh
#!/bin/bash
for n in `ifconfig | grep ppp | awk '{print $1}'`
do
ifconfig $n mtu 1400
echo "$(date +%c)ifconfig $n mtu 1400 success">>/tmp/pptpd_set_mtu.log
done



  使用VPN访问大部分网站都是正常的,但是我需要访问这个网站的时候就无法访问了:www.wellsfargo.com,这个站点出故障的几率和中500万的几率差不多,所以还是VPN的问题,那么问题就来了,找根本原因吧。
经内事百度,外事谷歌后得知:
     原因是由于MTU的原因,具体问题请自行google.解决办法是通过打补丁,但是我们没搞明白,更没有去动手。默认的MTU为1396,如下图。
 
那解决办法不就是改变MTU吗?那我手动修改后可以正常访问富国银行了,但是下一次拔号后还是1396,没有从根本上解决,那就需要从根本解决问题。
    临时解决办法就是编写一个修改MTU的脚本(网上找的脚本,感谢作者),如下:
  #!/bin/sh
CURRENT_MTU="`ifconfig $1 | grep -Po '(?<=MTU:)([0-9]+)'`"
FIXED_MTU="`expr $CURRENT_MTU + 4`"
ifconfig $1 mtu $FIXED_MTU
echo "Increased MTU for $1 to $FIXED_MTU (from $CURRENT_MTU) to fix MPPE Microsoft Point-to-Point bug #330973"    


解决方法:
/etc/pptp/ip-up这个文件有点意思,可能就是拔号是运行的一个脚本,那么我们看一下。
vim /etc/pptp/ip-up
  
#!/bin/bash
# This file should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
LOGDEVICE=$6
REALDEVICE=$1
[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post --realdevice ${REALDEVICE} ifcfg-${LOGDEVICE}
/etc/ppp/ip-up.ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
exit 0    
4.    
4.ip-up文件中有一行显示的是# /etc/ppp/ip-up.local instead和[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local 就是提示可以运行ip-up.local的脚本,那么我们将刚才的脚本放到这个位置,并命名为ip-up.local,加上+x权限。
5.service pptpd restart
6.VPN重新拔号,MTU已变成1400了。

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS