語法是: 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 [root@tp ~]# iptables -F 清除預設表filter中的所有規則鏈的規則 [root@tp ~]# iptables -X 清除預設表filter中使用者自定鏈中的規則