当我运行命令时
iptables-save
它返回 errno 1 - 操作不允许
如果我做:
iptables -L
进而:
iptables-save
然后 iptables-save 成功
此错误仅发生一次。成功后,故障消失。
我正在编写一个在我的主机上部署 iptables 的脚本,并且我必须自动从这个错误中恢复,有什么建议吗?
我还注意到,当我这样做时:
/etc/rc.d/init.d/iptables status
我得到:
Firewall is stopped.
答案1
这种现象通常发生在相关内核模块尚未加载时。运行iptables -L
会隐式加载模块,但iptables-save
实际上不会。
您可以通过运行来确认这一点lsmod | grep ipt
- 如果您没有得到任何输出,那么模块就没有加载。
您可以通过运行手动加载模块(仅适用于本次启动)modprobe iptable_filter
或启用 iptables 服务在每次启动时加载模块:(chkconfig iptables on
假设您正在运行 RedHat 系列发行版)。