在 Debian 系统中,删除 iptables 规则有多种方式,取决于你是按规则编号、条件匹配还是整表清空。下面按常见场景分类说明(适用于 Debian 10/11/12 等使用 iptables 的版本)。
删除前一定要先查看规则:
iptables -L -n -v
查看规则并显示行号(推荐):
iptables -L INPUT -n --line-numbers
iptables -L FORWARD -n --line-numbers
iptables -L OUTPUT -n --line-numbers
示例输出:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 DROP tcp -- 192.168.1.100 0.0.0.0/0
iptables -D INPUT 2
含义:
INPUT:链名2:规则编号删除后立即生效,但重启后会恢复原状(除非你保存)
如果你知道规则内容,可以直接用原规则删除:
iptables -D INPUT -s 192.168.1.100 -j DROP
⚠️ 条件必须完全一致,否则删除失败
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F
iptables -X
iptables -Z
⚠️ 会清空所有规则,可能导致 SSH 断开
iptables -L
iptables -F my_chain
iptables -X my_chain
iptables-save > /etc/iptables/rules.v4
恢复:
iptables-restore < /etc/iptables/rules.v4
安装:
apt install iptables-persistent
保存:
netfilter-persistent save
规则会保存并开机自动加载。
先查:
iptables -L INPUT -n --line-numbers | grep 8080
删除:
iptables -D INPUT -p tcp --dport 8080 -j ACCEPT
iptables -D INPUT -s 1.2.3.4 -j DROP
Debian 10+ 默认 iptables 实际是 nftables 后端
检查:
iptables -V
如果看到:
iptables v1.8.x (nf_tables)
建议改用:
nft list ruleset
✅ 生产环境删除规则前先备份
iptables-save > /root/iptables.backup
✅ 不要远程清空所有规则
✅ 删除后务必保存
✅ SSH 端口规则最后删
如果你愿意,可以把:
iptables -L -n --line-numbers 的输出贴出来,我可以帮你精确给出删除命令。