Iptables

刪除重複的 iptables 規則時,按什麼順序刪除?

  • September 9, 2022

假設我有一些重複的 iptables 規則:

$ iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -j DROP
-A FORWARD -j DROP
-A FORWARD -j DROP
-A FORWARD -j DROP
-A FORWARD -j DROP

我想一一刪除:

$ iptables -D 轉發 -j 刪除

以這種方式刪除規則的順序是什麼?是使用-D選項刪除的鏈中的第一條規則還是最後一條規則?

這似乎很容易測試。讓我們創建一組規則:

[root@fedora ~]# iptables -A FORWARD -j DROP
[root@fedora ~]# iptables -A FORWARD -j ACCEPT
[root@fedora ~]# iptables -A FORWARD -j DROP
[root@fedora ~]# iptables -S FORWARD
-P FORWARD ACCEPT
-A FORWARD -j DROP
-A FORWARD -j ACCEPT
-A FORWARD -j DROP

如果我們執行iptables -D FORWARD -j DROP,哪一個會被刪除?

[root@fedora ~]# iptables -D FORWARD -j DROP
[root@fedora ~]# iptables -S FORWARD
-P FORWARD ACCEPT
-A FORWARD -j ACCEPT
-A FORWARD -j DROP

好像刪掉了第一個。

引用自:https://serverfault.com/questions/1110301