使用 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