直接清空 iptables 所有规则需清空四表、删除自定义链、重置默认策略为 ACCEPT 并保存,否则可能因残留 DROP 策略或重启恢复导致失效;推荐使用一键脚本执行完整清理。

直接清空 iptables 所有规则,关键不是只执行 iptables -F,而是要覆盖全部表、删掉自定义链、重置默认策略,并保存空状态——否则可能表面清了,实际仍被 DROP 策略拦住,或重启后自动恢复旧规则。
一步到位清空所有规则和链
iptables 有 filter、nat、mangle、raw 四个表,每个表都有内置链和可能存在的自定义链。只清 filter 表(默认表)远远不够:
-
iptables -F清空 filter 表所有链(INPUT/OUTPUT/FORWARD) -
iptables -X删除 filter 表中所有用户自定义链 -
iptables -t nat -F清空 nat 表(用于端口映射、SNAT/DNAT) -
iptables -t nat -X删除 nat 表中的自定义链 -
iptables -t mangle -F && iptables -t mangle -X清理包标记相关规则 -
iptables -t raw -F && iptables -t raw -X清理连接跟踪绕过规则
必须重置默认策略为 ACCEPT
清空规则后,各链的默认策略(-P)仍可能是 DROP 或 REJECT。此时即使规则为空,所有流量也会被拒绝:
iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P OUTPUT ACCEPT
这三步确保系统在无规则状态下保持连通,特别适合调试或重装防火墙配置前的安全准备。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
防止重启后规则自动恢复
很多发行版会自动加载上次保存的规则。清空后不保存,重启就白做了:
- Debian/Ubuntu:
iptables-save > /etc/iptables/rules.v4 - CentOS 6/RHEL 6:
service iptables save - 使用 iptables-persistent 的系统:
netfilter-persistent save
注意:若系统已启用 firewalld(RHEL7+/CentOS 8+),直接操作 iptables 可能无效,应改用 firewall-cmd --remove-all-rich-rules && firewall-cmd --reload。
推荐用一键脚本执行
把上述命令整合成可复用的脚本,避免遗漏:
#!/bin/bashiptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables-save > /etc/iptables/rules.v4 2>/dev/null || true
保存为 clear-iptables.sh,然后运行:chmod +x clear-iptables.sh && sudo ./clear-iptables.sh

















