CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:
chkconfig --level 345 iptables on
将其加入开机启动。
CentOS上可以执行:service iptables save保存规则。
另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。
需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则:
创建/etc/network/if-post-down.d/iptables 文件,添加如下内容:
#!/bin/bash
iptables-save > /etc/iptables.rules
执行:chmod +x /etc/network/if-post-down.d/iptables 添加执行权限。
创建/etc/network/if-pre-up.d/iptables 文件,添加如下内容:
#!/bin/bash
iptables-restore < /etc/iptables.rules
执行:chmod +x /etc/network/if-pre-up.d/iptables 添加执行权限。
CentOS 对应的网卡启动相关脚本在/etc/sysconfig/network-scripts/目录下,pre和post相关脚本实际上默认没有,在/sbin/目录下创建相关脚本即可被/etc/sysconfig/network-scripts目录下的脚本调用到,例如/sbin/ifup-pre-local, /sbin/ifup-local, /sbin/ifdown-pre-local, /sbin/ifdown-local.被调用的脚本接收一个参数是网卡名称,所以最好在脚本里面做一下判断。
关于更多的iptables的使用方法可以执行:iptables --help或网上搜索一下iptables参数的说明。