我决定运行这个命令
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
然后,我重启了系统。上面的脚本将运行,现在我可以访问我的服务器了。
一切正常后,我删除了上述所有命令,以防止第二次自动运行。