目前有这个片段:
iptables -F // flush all chains iptables -t nat -F iptables -t mangle -F iptables -X // delete all chains
运行后有没有可能存在一些不透明的规则?
这个想法是有一个完全干净的iptablesconfiguration,可以很容易地被新的规则集(nevermind routes / ifconfig的参数)取代。
要简洁地回答你的问题,不要:在每个表格刷新后都不会有任何“剩余”规则。 但是为了保持完整,您可能需要将内置INPUT
和FORWARD
链的策略设置为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
这将正确地完全重置你的iptables系统到一个非常基本的状态:
iptables-save | awk '/^[*]/ { print $1 } /^:[AZ]+ [^-]/ { print $1 " ACCEPT" ; } /COMMIT/ { print $0; }' | iptables-restore
所有策略将被重置为ACCEPT,并刷新当前使用的每个表。 除了内置的连锁店之外的所有连锁店将不复存在。
每当我需要禁用防火墙是这样的:
iptables-save > iptables.bak
service iptables stop
(我在Fedora上) 人们可以在1或2个命令中做到这一点:
$ sudo iptables-save > iptables.bak $ sudo iptables -F
结果:
$ sudo iptables -nvL Chain INPUT (policy ACCEPT 3138 packets, 5567K 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 3602 packets, 6547K bytes) pkts bytes target prot opt in out source destination