解决PPTP错误(ppp:compressor dropped pkt)

万事须己运,他得非我贤。这篇文章主要讲述解决PPTP错误:ppp:compressor dropped pkt相关的知识,希望能为你提供帮助。
服务器版本:CENTOS 6.4
【解决PPTP错误(ppp:compressor dropped pkt)】内核:2.6.32-358.6.2.el6.x86_64
服务:PPTP服务。
故障:搭建好PPTP服务后使用还算比较正常,但是系统会出现报错,如下:

解决PPTP错误(ppp:compressor dropped pkt)

文章图片

 
      使用×××访问大部分网站都是正常的,但是我需要访问这个网站的时候就无法访问了:www.wellsfargo.com,这个站点出故障的几率和中500万的几率差不多,所以还是×××的问题,那么问题就来了,找根本原因吧。
经内事百度,外事谷歌后得知:
        原因是由于MTU的原因,具体问题请自行google.解决办法是通过打补丁,但是我们没搞明白,更没有去动手。默认的MTU为1396,如下图。
解决PPTP错误(ppp:compressor dropped pkt)

文章图片

那解决办法不就是改变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"

        经过一翻努力和实验,终于找到了解决办法。
解决方法:
  1. /etc/pptp/ip-up这个文件有点意思,可能就是拔号是运行的一个脚本,那么我们看一下。
  2. vim /etc/pptp/ip-up 
  3. #!/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.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.×××重新拔号,MTU已变成1400了。
解决PPTP错误(ppp:compressor dropped pkt)

文章图片

 
  7.访问富国银行正常了,错误日志已不再有,完美解决该问题。

    推荐阅读