[PPTPD]VPN解决PTY read or GRE write failed问题
使用VPS搭建的翻墙用VPN在最近一次系统升级后经常出现连接断开和无法连接的现象(619等错误),
调查了linux的系统日志(syslog),发现每次连接失败都会出现以下日志内容,
GRE: read(fd=6,buffer=80504c0,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
CTRL: Reaping child PPP[13354]
CTRL: Client XXX.XXX.XXX.XXX control connection finished
开始以为是GRE出了问题,但是查看了升级日志后发现GRE并没有升级,后来通过谷哥和度娘找到了解决办法,在此MARK一下。
1.打开调试模式,修改/etc/ppp/pptp-options 文件,找到
#debug #dump |
取消行前的注释,重启pptpd服务进入调试模式
2.分析日志后发现是logwtmp版本的与pptpd版本不一致的原因导致的问题,打开/etc/pptpd.conf文件,找到
logwtmp |
注释掉logwtmp后,重新启动pptpd,再次连接后一切恢复正常。
3.最后如果你的服务器启用了proxyarp功能的话,每次非正常断开连接后,不要忘记arp -d一下。
#windows arp -d #linux sudo arp -d -a |
你怎么分析出来的?
@YangLong
如果你的日志中出现这句,那就很明显了。
Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4
还有一个原因就是没打开GRE协议。
谢谢!果然是 logwtmp 的问题!