温馨提示×

ubuntu iptables如何删除

小樊
102
2026-07-23 19:48:47
栏目: 智能运维

在 Ubuntu 中,使用 iptables 删除规则有几种常见方式,下面按最常用 → 最安全的顺序说明。


一、查看已有规则(先确认)

sudo iptables -L -n --line-numbers
  • -L:列出规则
  • -n:不做 DNS 解析(更快)
  • --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

二、按编号删除规则(✅ 推荐)

sudo iptables -D INPUT 2

含义:

  • INPUT:链名
  • 2:规则编号

⚠️ 删除后编号会变化,建议每次删除前重新查看


三、按规则内容删除(精确匹配)

如果你知道完整规则内容,可以直接删除:

sudo iptables -D INPUT -p tcp --dport 80 -j DROP

⚠️ 规则必须完全一致,否则删除失败


四、删除整个链的所有规则

清空指定链

sudo iptables -F INPUT

清空所有规则(慎用)

sudo iptables -F

删除自定义链

sudo iptables -X 链名

五、删除策略(Policy)

查看策略:

sudo iptables -L | grep policy

修改策略(不是删除):

sudo iptables -P INPUT ACCEPT

六、Ubuntu 中规则重启后消失的问题(重要)

iptables 默认不会保存,重启后会丢失。

✅ 推荐解决方案(Ubuntu 20.04+)

安装 iptables-persistent

sudo apt update
sudo apt install iptables-persistent

保存规则

sudo netfilter-persistent save

重新加载规则

sudo netfilter-persistent reload

七、常见示例

删除 SSH 端口 22 的允许规则

sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT

删除所有 DROP 规则

sudo iptables -L INPUT --line-numbers | grep DROP
sudo iptables -D INPUT 编号

八、如果你用的是 UFW(Ubuntu 防火墙)

Ubuntu 通常推荐用 UFW,而不是直接操作 iptables:

sudo ufw status numbered
sudo ufw delete 编号

如果你愿意,可以贴出:

sudo iptables -S

或

sudo iptables -L -n --line-numbers

我可以帮你精确删除某一条规则。

0 踩