Home 不够折腾
Life is short, Play more.

换服务器IP地址导致PPTPD工作不正常的解决记录

最早用的Diahosting的一键安装包,挺方便的,就没在意到底怎么设置的。

后来由于服务器换IP地址,其他Web服务都正常使用,唯独VPN只能连接,但不能上网。从现象来看,PPTPD验证时正常的,估计包转发出问题了,于是就研究一下PPTP设置的流程吧,主要是这几个步骤:

  • 安装PPTPD,设置PPTP使用的内部IP和外部IP(连接Client被分配的IP地址段),设置PPP使用的DNS服务器,设置VPN用户名密码
  • 设置允许 IP Forward
  • 设置iptables包转发规则,PPTP网卡的流量转发到主机外网IP
  • 保存各种设置并开机启动

怀疑是iptables包转发规则出错了。先又照着流程手动做了一遍iptables的设置,不起作用。然后就搜了一下怎样能列出来所有iptables规则,看看前面的设置是否正确。

iptables -t nat -L

[root@vps ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  172.16.36.0/24       anywhere            to:<My Old IP>
SNAT       all  --  172.16.36.0/24       anywhere            to:<My New IP> 
SNAT       all  --  172.16.36.0/24       anywhere            to:<My New IP> 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

现在看出来了转发规则中第一条是说满足要求的包通过旧IP地址转发出去。但是旧IP地址已经不存在了,所以要把这条地址删掉。新IP地址的转发规则由于我手动做了多次尝试,这里有两条一样的规则,也要删掉一条重复的。

删除iptables规则的命令就是将iptables命令中的 -A 改为 -D。尝试后保存,everything works fine。


Ricky
17 Feb 2015

scribble

版权声明:自由转载-非商用-非衍生-保持署名

评论交流:请通过Twitter联系