在 Debian 系统中重置 iptables 策略,通常指的是清空所有规则、删除自定义链、并将默认策略恢复为 ACCEPT。下面给出几种常见、安全的做法。
适合大多数场景(停止所有防火墙限制):
iptables -F # 清空所有规则
iptables -X # 删除所有自定义链
iptables -Z # 清零计数器
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
如果你还使用了 IPv6:
ip6tables -F
ip6tables -X
ip6tables -Z
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
✅ 执行后系统基本处于“无防火墙”状态。
#!/bin/bash
# 清除规则
iptables -F
iptables -X
iptables -Z
# 恢复默认策略
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# IPv6
ip6tables -F
ip6tables -X
ip6tables -Z
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
保存后执行:
chmod +x reset_iptables.sh
./reset_iptables.sh
Debian 常用 iptables-persistent 保存规则。
cat /etc/iptables/rules.v4
cat /etc/iptables/rules.v6
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
然后保存:
netfilter-persistent save
或(旧版本):
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
systemctl stop netfilter-persistent
systemctl disable netfilter-persistent
⚠️ 仅用于临时排查问题。
iptables -F
如果默认策略是 DROP,会导致 SSH 立刻断连。
✅ 正确顺序:
iptables -P INPUT ACCEPT
iptables -F
iptables -L -n -v
iptables -S
如果你愿意,可以告诉我:
我可以给你一套不会断网的精准重置方案。