(查看系统日志[ cat /var/log/messages |grep pptpd ]后发现)
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
于是把打开调试模式,修改/etc/ppp/pptp-options 文件,找到
#取消如下行前#
debug
#执行
service pptpd restart
取消行前的注释,重启pptpd服务进入调试模式
分析日志后发现是logwtmp版本的与pptpd版本不一致的原因导致的问题,于是打开/etc/pptpd.conf文件,找到
logwtmp
注释掉logwtmp后,重新启动pptpd,再次连接后一切恢复正常。
默认启用了proxyarp(在/etc/ppp/pptp-options中)功能,每次非正常断开连接后,执行以下命令:
#windows
arp -d
#linux
sudo arp -d -a