在网上找了一下,删除规则的命令方法:
语法是: iptables -D chain rulenum [options]
其中: chain 是链的意思,就是INPUT或FORWARD 之类的定语。
rulenum 是该条规则的编号。从1开始。可以使用iptables -L INPUT --line-numbers列出指定的链的规则的编号来。
语法是: iptables -D chain rulenum [options]
其中: chain 是链的意思,就是INPUT或FORWARD 之类的定语。
rulenum 是该条规则的编号。从1开始。可以使用iptables -L INPUT --line-numbers列出指定的链的规则的编号来。
所以,例如上面要删除一个INPUT链的规则的话可以这样:
iptables -D INPUT 3
意思是删除第3条规则。
iptables -D INPUT 3
意思是删除第3条规则。
说一下上面的 --line-numbers 选项,如下面的命令:
iptables -L INPUT --line-numbers 列出INPUT 链所有的规则
num target prot opt source destination
1 REJECT tcp — anywhere anywhere tcp dpt:microsoft-ds reject-with icmp-port-unreachable
2 REJECT tcp — anywhere anywhere tcp dpt:135 reject-with icmp-port-unreachable
3 REJECT tcp — anywhere anywhere tcp dpt:netbios-ssn reject-with icmp-port-unreachable
4 REJECT udp — anywhere anywhere udp dpt:microsoft-ds reject-with icmp-port-unreachable
5 REJECT udp — anywhere anywhere udp dpt:135 reject-with icmp-port-unreachable
…
删除指定的第4行规则:
iptables -D INPUT 4
iptables -L INPUT --line-numbers 列出INPUT 链所有的规则
num target prot opt source destination
1 REJECT tcp — anywhere anywhere tcp dpt:microsoft-ds reject-with icmp-port-unreachable
2 REJECT tcp — anywhere anywhere tcp dpt:135 reject-with icmp-port-unreachable
3 REJECT tcp — anywhere anywhere tcp dpt:netbios-ssn reject-with icmp-port-unreachable
4 REJECT udp — anywhere anywhere udp dpt:microsoft-ds reject-with icmp-port-unreachable
5 REJECT udp — anywhere anywhere udp dpt:135 reject-with icmp-port-unreachable
…
删除指定的第4行规则:
iptables -D INPUT 4
OK了。。。
------------------------
使用iptables -F 要小心,搞不好,你就马上同服务器断开连接了
以下是来自 http://wiki.ubuntu.org.cn/IptablesHowTo 上的说明
可以通过iptables -F清除所有规则来暂时停止防火墙: (警告:这只适合在没有配置防火墙的环境中,如果已经配置过默认规则为deny的环境,此步骤将使系统的所有网络访问中断)
如果想清空的话,先执行
iptables -P INPUT ACCEPT
然后执行
iptables -F
通过iptables -L 看到如下信息
Chain INPUT (policy DROP 0 packets, 0 bytes) (注意 是DROP)
执行/sbin/iptables -F就肯定立马断开连接
当执行了
iptables -P INPUT ACCEPT
再次通过iptables -L看信息的话就是
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
所以现在是可以安全使用
iptables -F了