原始出处:http://www.wanghailin.cn/linux-pptpd-619-internet/
619错误的原因有很多,下面给出原因列表,供大家排查
1、logwtmp冲突
解决:编辑 /etc/pptpd.conf,找到logwtmp用#注释掉
2、防火墙拦截
可以关闭防火墙:
service iptables stop
也可以修改拦截规则(建议)
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.9.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
service iptables save
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.9.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
service iptables save
3、sysctl错误,解决方法详见下面的无法上网解决方法
4、无法支持localip指定
编辑/etc/pptpd.conf文件:
vi /etc/pptpd.conf
在下面字段的前面加上#即可:
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
无法上外网解决办法
1.、请确保你的MS-DNS和防火墙已经正确配置:
防火墙按照下面方法配置:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 你的公网IP
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
若出现无法连接,可以尝试按照上面解决619错误的设置方法设置
编辑/etc/ppp/options.pptpd:
vi /etc/ppp/options.pptpd
去掉ms-dns前面的#,并修改成如下字段:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
2、编辑/etc/sysctl.conf
将“net.ipv4.ip_forward”改为1
同时在“net.ipv4.tcp_syncookies = 1”前面加#
3、执行下面的命令
sysctl -p
4、如此执行后,应该可以正常连接外网了,若还是不能连接外网,请检查你在执行上面的命令时,是否获得了下面的错误信息:
5、如果有上面的错误,先运行下面两个命令,再重新执行sysctl -p
modprobe bridge
lsmod|grep bridge
这样就能完美解决问题啦,若还是报错,详见:
http://www.wanghailin.cn/scka/centos6-sysctlconf-error/
Centos 6下修改sysctl.conf后及其容易出现报错信息
无法正常完成修改
sysctl.conf涉及linux重要的内核优化,搭建×××等操作
所以必须解决这个问题
XEN架构
我起先是在我XEN架构的香港VPS里遇到了这个问题
执行下面的命令后相当容易的解决了问题
modprobe bridge
lsmod|grep bridge
OpenVZ架构
而在我OpenVZ架构的美国VPS里执行上面的命令却得到了下面的回馈:
FATAL: Module bridge not found.
看来这样的命令是无法解决问题的,查阅了一番资料后,在一个国外博客内找到了解决方案
运行下面的命令即可:
rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe
rm -f /sbin/sysctl
ln -s /bin/true /sbin/sysctl
完成上面的命令后,便可解决问题了!
[PPTPD]×××解决PTY read or GRE write failed问题
使用VPS搭建的×××用×××在最近一次系统升级后经常出现连接断开和无法连接的现象(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