在我们的Unix的系统中iptables其实并不是一个服务,它没有监听端口也没有进程,平时在使用service iptables restart或者是/etc/init.d/iptables restart时只是为了方便读取iptables的规则文件才写了这个脚本的,iptables的工作方式就是去读取你所书写的规则文件。在所有的linux系统下是有一个默认的iptables规则文件/etc/sysconfig/iptables,所以我们平时可以直接在规则文件上书写规则,然后在service iptables restart使iptables规则生效,然后在service iptables save保存,它会自动整理你书写的规则,但是在debian或Ubuntu等系统中是没有默认的iptables的规则文件的,而我们要让iptables开机时生效就要用iptables-restore命令,这里通过man帮助得到以下选项参数:
-c:指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值;
-t:指定要还原表的名称。
[root@linuxidc.com ~]#iptables-restore < iptables#把书写的规则导入iptables中使之生效
这样我们通过开机启动脚本/etc/rc.local里添加使iptables开机生效,在debian或ubuntu等系统中没有/etc/sysconfig/这个文件夹,为了便于管理就和linux的系统一样在这里建一个文件夹然后
[root@linuxidc.com sysconfig]#vim iptables#书写好规则后
[root@linuxidc.com sysconfig]#vim /etc/rc.local
iptables-restore < /etc/sysconfig/iptables#添加这一行
这样iptables的规则就会开机生效了,此方法也适用于任何Unix的主机里。
更多iptables相关教程见以下内容:
CentOS 7.0关闭默认防火墙启用iptables防火墙