在 Ubuntu 中,iptables
是一个用于配置 Linux 内核防火墙(netfilter)规则的命令行工具。要清除所有的 iptables
规则,可以使用以下命令:
清空所有链的规则:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
解释:
-P INPUT ACCEPT
、-P FORWARD ACCEPT
和 -P OUTPUT ACCEPT
:将默认策略设置为接受所有输入、输出和转发的数据包。-t nat -F
:清空 NAT 表中的所有规则。-t mangle -F
:清空 mangle 表中的所有规则。-F
:清空所有链中的所有规则。-X
:删除用户自定义的链。保存更改:
在某些版本的 Ubuntu 中,iptables
规则在重启后不会自动保存。你可以使用 iptables-persistent
工具来保存和恢复规则。
安装 iptables-persistent
:
sudo apt-get update
sudo apt-get install iptables-persistent
在安装过程中,系统会提示你是否保存当前的 iptables
规则。选择“是”以保存规则。
手动保存规则(如果未使用 iptables-persistent
):
如果你没有使用 iptables-persistent
,可以手动保存规则到文件中,并在启动时加载它们。
保存规则:
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-save > /etc/iptables/rules.v6 # 如果使用 IPv6
加载规则(在启动时自动加载):
编辑 /etc/network/if-pre-up.d/iptables
文件,添加以下内容:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v6 # 如果使用 IPv6
赋予执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
通过以上步骤,你可以清除并保存 iptables
规则,确保在系统重启后规则不会丢失。