在 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
规则,确保在系统重启后规则不会丢失。