1   环境

CentOS release 6.5 (Final) 64位

搭建pptp做×××

顺便写篇文档,记录自己趟过的坑。

2   什么是pptp

  拨号代理、×××,你懂得。

3   发现问题

偶然发现10.8.3.199message日志一直在报错:

kernel: ppp: compressor droppedpkt

4   解决问题

百度了一下,原因是因为pptp不兼容windows的客户端造成的。Windows客户端mtu值为1400以上,Linux pptp服务器默认mtu1396

解决步骤如下:

1、     尝试手动配置mtu值。

# ifconfig ppp0 mtu 1400

改完确实解决了暂时性问题,但是重启后依然会恢复到1396

2、     查看配置文件

# cat /etc/ppp/if-up

从配置文件中得知pptp启动脚本中支持ip-up.local名字的脚本。故,编写自动配置mtu值的脚本。启服务时会自动运行该脚本。即可解决该问题。

脚本内容如下:

#!/bin/sh

CURRENT_MTU="`ifconfig $1 | grep -Po'(?<=MTU:)([0-9]+)' | tail -1`"

FIXED_MTU="`expr $CURRENT_MTU + 4`"

for network in `ifconfig | grep -E"ppp0|ppp1" | awk '{print $1}'`

do

  ifconfig$network mtu $FIXED_MTU

done

将脚本放置在/etc/ppp/目录中,命名为ip-up.local,最后给权限

# chmod +x ip-up.local


ps:今天携程、艺龙、支付宝都出问题。谁是凶手?