李大仁博客

[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
Exit mobile version