iptables
是 Linux
系统上的一个功能强大的防火墙工具,用于设置、维护和检查系统的表格结构,这些表格存储了网络数据包过滤和转换规则。尽管 iptables
本身不能被“关闭”或停止,因为它是内核级的网络包过滤机制,但是我们可以通过清空所有规则、设置默认策略为允许或使用特定的命令来实质上停用它。
1. 清空所有链的规则
首先,确保所有链(包括默认链和自定义链)的规则都被清空。这将保留链但移除所有规则。
sudo iptables -F
2. 删除所有自定义链
尝试再次删除所有自定义链。因为现在所有链都被清空了,不应该再有 “Too many links” 的错误。
sudo iptables -X
如果此步骤成功,这意味着之前的问题是由于规则之间的依赖关系造成的。
3. 检查并重置默认策略
接下来,将所有默认链的策略重置为 ACCEPT
,确保不会无意中阻止任何流量。
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
4. 确认规则清空
确认所有规则都已经清空,可以使用以下命令查看当前的规则集:
sudo iptables -L -v
如果成功的话,会显示:
1 2 3 4 5 6 7 8 9 |
ubuntu@ip-172-31-0-109:~$ sudo iptables -L -v Chain INPUT (policy ACCEPT 18 packets, 1467 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 42 packets, 10167 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 17 packets, 1686 bytes) pkts bytes target prot opt in out source destination |
5. 保存规则
在某些发行版中,这些更改在重启后不会保留。要确保这些更改持久化,需要使用工具来保存这些设置。例如,在基于 Debian
和 Ubuntu
的系统上,可以使用 iptables-persistent
包:
sudo apt-get install iptables-persistent
安装过程中,它会询问是否保存当前的 iptables
规则;可以选择保存。以后,我们可以使用以下命令来保存/恢复规则:
sudo netfilter-persistent save
sudo netfilter-persistent reload