学习IPTABLES 时候只学过新增规则,用iptables -F后全部规则都会清空,但是如何删除一条规则呢?网上搜索了下,删除规则的方法:

一:

语法是: iptables -D chain rulenum [options]

其中: chain 是链的意思,就是INPUT FORWARD 之类的

             rulenum 是规则的编号。从1 开始。可以使用  --line-numbers 列出规则的编号.

说一下 --line-numbers 选项,如下面的命令:

1、查看需要删除的规则,本例为FORWARD 规则。

[root@Router ~]# iptables -L FORWARD --line-numbers
hain FORWARD (policy ACCEPT)
num  target     prot opt source               destination        
1    REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

2、删除指定行规则:

[root@Router ~]# iptables -D FORWARD 1

二、第二种办法是 -A 命令的映射,不过用-D替换-A。当你的链中规则很复杂,而你不想计算它们的编号的时候这就十分有用了。也就是说,你如何用iptables -A.... 语句定义了一个规则,则删除此规则时就用 -D 来代替- A  其余的都不变即可。