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

来源:互联网 发布:电影票房数据库网站 编辑:程序博客网 时间:2024/06/11 13:24

1.我们要增加的规则是:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT

即开放82的tcp端口。

2.第一种方法,使用命令增加:

首先用命令增加规则:

iptables  -A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT

上面的命令即时生效,但是重启iptables服务后就消失了。如何永久生效呢?

[root@localhost ~]# service iptables saveiptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

然后看下配置文件里,是有的。以后重启iptables服务,或者重启系统这条规则都会生效。

[root@localhost ~]# cat /etc/sysconfig/iptables | grep 82-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT

3.第二种方法,直接编辑iptables配置文件

vim /etc/sysconfig/iptables

将上面的语句-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;如果是永久规则,用上面的第一种或第二种方法,二选一不可混用。
原创粉丝点击