Linux

清除所有 iptables 規則的最佳方法

  • October 31, 2021

我目前有這個片段:

# flush all chains
iptables -F
iptables -t nat -F
iptables -t mangle -F
# delete all chains
iptables -X

執行此命令後是否有可能某些不可滲透的規則仍然存在?

這個想法是有一個完全乾淨的 iptables 配置,可以很容易地被新的規則集替換(不要介意路由/ifconfig 的參數)。

簡潔地回答你的問題,不:刷新每張桌子後不會有任何“剩餘”規則。但是,為了徹底起見,您可能還希望將內置INPUTFORWARD鏈的策略設置為ACCEPT,以及:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

清除 ip6tables 規則:

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

…應該這樣做。iptables -nvL應該產生這個(或非常相似的)輸出:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

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