简短回答
用 KiwiVM 的交互式控制台登录 VPS,它不经过 SSH,网络不通时也能用。先停掉 iptables 服务,网络恢复就确认是防火墙的问题,然后改掉错误规则或者全部清空;实在不行,重装系统能让网络完全恢复。
先确认是不是防火墙
防火墙规则写错,VPS 会完全连不上:用 ping.pe 测各地都不通,打开 MTR 能看到宿主机正常,只有你的 VPS 不通。官方知识库的判断方法:
- 在 KiwiVM 打开交互式控制台,用 root 登录,见 Root Shell 是做什么的。
- 停掉 iptables 服务,具体命令取决于你的系统发行版。
- 网络恢复了,就说明问题出在 iptables。
改规则或者全部清空
查看规则(官方提醒要先把 iptables 服务重新启动,这条命令才能正常显示):
iptables -L -n; iptables -L -n -t nat
如果规则里有 VPS 的旧 IP,尤其是在 NAT 表里,就手动删掉旧规则、按新 IP 重新添加。刚换过机房的最常见这种情况,见 换机房后连不上。
也可以把规则全部清空并保存:
iptables -F; iptables -t nat -F; iptables-save > /etc/sysconfig/iptables
官方示例用的保存路径是 /etc/sysconfig/iptables,不同发行版保存规则的方式可能不一样,按自己的系统调整。
实在不行就重装
官方知识库说,最后的办法是重装系统,装上全新系统后网络连通会完全恢复。重装前先把重要数据救出来,见 怎么救回数据。以后改防火墙前,先在 KiwiVM 做个快照,见 快照和备份。