在 Debian 系统中删除 iptables 规则有几种常见方式,下面按最常用 → 最推荐的顺序说明。
iptables -L -n -v --line-numbers
-L:列出规则-n:不解析域名-v:详细信息--line-numbers:显示规则编号(删除时非常重要)示例输出:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
语法:
iptables -D 链名 规则编号
示例:删除 INPUT 链中第 2 条规则
iptables -D INPUT 2
⚠️ 注意:
如果你知道规则的完整内容,可以直接删除:
iptables -D INPUT -p tcp --dport 80 -j DROP
⚠️ 规则必须完全匹配,否则删除失败
iptables -F INPUT
iptables -F
如果你是通过 SSH 远程操作,不建议直接 -F,可能导致断连。
iptables -F MYCHAIN
iptables -X MYCHAIN
iptables -t nat -L -n -v --line-numbers
iptables -t nat -D POSTROUTING 1
Debian 不会自动保存 iptables 规则,重启后会恢复。
iptables-persistent安装:
apt update
apt install iptables-persistent
保存规则:
netfilter-persistent save
或手动:
iptables-save > /etc/iptables/rules.v4
Bad rule (does a matching rule exist in that chain?)
原因:规则不存在或不完全匹配
✅ 建议操作前加一条保底规则:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -L --line-numbers
iptables -D INPUT 2
netfilter-persistent save
如果你愿意,可以把你的 iptables 规则贴出来,我可以帮你精准判断该删哪一条,避免误删。