温馨提示×

如何删除Debian iptables规则

小樊
37
2026-07-29 17:37:05
栏目: 智能运维

在 Debian 系统中删除 iptables 规则有几种常见方式,下面按最常用 → 最推荐的顺序说明。


一、查看现有 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,可能导致断连。


五、删除自定义链

  1. 先清空链:
iptables -F MYCHAIN
  1. 再删除链:
iptables -X MYCHAIN

六、删除 NAT / mangle 表规则

查看 NAT 表

iptables -t nat -L -n -v --line-numbers

删除 NAT 规则

iptables -t nat -D POSTROUTING 1

七、让删除永久生效(非常重要 ⚠️)

Debian 不会自动保存 iptables 规则,重启后会恢复。

方法 1(推荐):使用 iptables-persistent

安装:

apt update
apt install iptables-persistent

保存规则:

netfilter-persistent save

或手动:

iptables-save > /etc/iptables/rules.v4

八、常见错误排查

1️⃣ 删除失败

Bad rule (does a matching rule exist in that chain?)

原因:规则不存在或不完全匹配

2️⃣ SSH 被锁

✅ 建议操作前加一条保底规则:

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

总结(快速删规则)

iptables -L --line-numbers
iptables -D INPUT 2
netfilter-persistent save

如果你愿意,可以把你的 iptables 规则贴出来,我可以帮你精准判断该删哪一条,避免误删。

0