Ubuntu 22.04.1 LTS(树莓派)重启后iptables规则丢失问题求助
Ubuntu 22.04.1 LTS(树莓派)重启后iptables规则丢失问题求助
大家好,我是刚接触Ubuntu的新手,最近在树莓派上配置iptables防火墙规则时遇到了棘手的问题——每次重启设备后,之前设置的规则就全部消失了,试了好多次都没解决,想请大家帮忙看看哪里出错了😭
问题现象
我尝试了多种方法保存iptables配置,期望重启后规则能自动加载,但每次重启后执行sudo iptables -L查看,之前配置的链规则都不见了。
我的操作步骤
1. 配置iptables规则
我按以下顺序执行了这些命令来设置规则:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTsudo iptables -A INPUT -p tcp --dport ssh -j ACCEPTsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -j DROPsudo iptables -I INPUT 1 -i lo -j ACCEPT
2. 尝试保存并自动恢复规则
我参考了官方文档里的两种方案,都没成功,这里详细说一下我尝试的方案2的操作:
- 首先保存当前规则到文件:
sudo sh -c "iptables-save > /etc/iptables.rules" - 在
/etc/network/if-pre-up.d/目录下创建iptablesload脚本,用Vim编辑内容如下:
编辑完成后用#!/bin/sh iptables-restore < /etc/iptables.rules exit 0:wq保存退出。 - 在
/etc/network/if-post-down.d/目录下创建iptablessave脚本,内容如下:
同样用Vim保存退出。#!/bin/sh iptables-save -c > /etc/iptables.rules if [ -f /etc/iptables.downrules ]; then iptables-restore < /etc/iptables.downrules fi exit 0 - 给两个脚本添加执行权限:
sudo chmod +x /etc/network/if-post-down.d/iptablessavesudo chmod +x /etc/network/if-pre-up.d/iptablesload
结果
做完以上所有操作后,我重启了树莓派,但再次执行sudo iptables -L时,之前配置的规则还是全部消失了。
作为Ubuntu新手,实在找不到问题所在,恳请各位大佬帮忙分析指点,谢谢大家!
备注:内容来源于stack exchange,提问作者Chookitypok




