关于iptables添加规则不生效的问题

原文:https://blog.csdn.net/donglynn/article/details/73530542 

1.我们要增加的规则是:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT
1
即开放82的tcp端口。

2.第一种方法,使用命令增加:
首先用命令增加规则:

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT
1
上面的命令即时生效,但是重启iptables服务后就消失了。如何永久生效呢?

[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
1
2
3
然后看下配置文件里,是有的。以后重启iptables服务,或者重启系统这条规则都会生效。

[root@localhost ~]# cat /etc/sysconfig/iptables | grep 82
-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT
1
2
3.第二种方法,直接编辑iptables配置文件
vim /etc/sysconfig/iptables
1
将上面的语句-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT直接插入到上述文件中。
这时候规则是不生效的,需要重启服务service iptables restart。之后这条规则就永久生效了。

4.总结一下。
如果是命令增加条目,那规则是临时的。
如果要永久生效,要把规则写进配置文件。写配置文件的办法有两种,一种是直接编辑,一种是service iptables save。
iptables服务每次启动的时候才会去读一次规则。如果直接编辑了配置文件,然后用service iptables save,那么内存里的配置规则是初始的,会覆盖你直接对配置文件的编辑。
因此,最后的结论是,如果是临时规则,用上面的第一种办法,但是不要save;如果是永久规则,用上面的第一种或第二种方法,二选一不可混用。
---------------------



原文地址:https://www.cnblogs.com/ray-bk/p/10533206.html