运行 iptables-restore 后无法访问我的服务器。如何恢复此命令

运行 iptables-restore 后无法访问我的服务器。如何恢复此命令

我决定运行这个命令

iptables-save | tee iptables_backup.conf | grep -v '\-A'

但我却不小心多放了一条命令 iptables-restore 并运行了它,现在我的服务器被锁定了。我无法再使用 SSH 了:

iptables-save | tee iptables_backup.conf | grep -v '\-A' | iptables-restore

我可以从救援磁盘访问我的服务器并查看所有文件,但是如何恢复上述命令来启动我的服务器?

我正在使用 Centos 8。

答案1

您很聪明,做了备份。为什么不使用它呢?

iptables-restore < iptables_backup.conf

答案2

由于备份不包含 ipv6,所以毫无用处,我应该对 ipv6 进行另一次备份,如下所示:

ip6tables-save

我通过在启动时使用 rc.local 将 iptables 恢复到原始状态来解决这个问题。因此,在启动恢复时,我编辑了这个文件:

nano /etc/rc.d/rc.local

# Temporary commands to run once at startup to reset iptables to original state
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

ip6tables -F
ip6tables -X
ip6tables -t nat -F
ip6tables -t nat -X
ip6tables -t mangle -F
ip6tables -t mangle -X
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT

#chmod +x rc.local

然后,我重启了系统。上面的脚本将运行,现在我可以访问我的服务器了。

一切正常后,我删除了上述所有命令,以防止第二次自动运行。

相关内容