iptables怎麼刪除一條已有的iptables規則
在學習IPTABLES命令時,往往只有怎麼往鏈裡新增規則,並沒有說怎麼刪除規則,而在實際的使用時。刪除規則也很常用的。
在網上找了一下,刪除規則的命令方法:
語法是: iptables -D chain rulenum [options]
其中: chain 是鏈的意思,就是INPUT FORWARD 之類的定語
rulenum 是該條規則的編號。從1開始。可以使用iptables -L INPUT –line-numbers列出指定的鏈的規則的編號來。
所以,例如上面要刪除一個INPUT鏈的規則的話可以這樣:
iptables -D INPUT 3
意思是刪除第3條規則。
還有第二種方法
第二種辦法是 -A 命令的對映,不過用-D替換-A。當你的鏈中規則很複雜,而你不想計算它們的編號的時候這就十分有用了。
也就是說,你如何一開始時用iptables -A…. 語句定義了一個規則,那麼刪除此條規則時直接用 -D 來代替- A, 其餘的都不變即可,而不需要什麼編號了。
======================
說一下上面的 –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
OK了。。。