在 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 链名
查看策略:
sudo iptables -L | grep policy
修改策略(不是删除):
sudo iptables -P INPUT ACCEPT
iptables 默认不会保存,重启后会丢失。
sudo apt update
sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -L INPUT --line-numbers | grep DROP
sudo iptables -D INPUT 编号
Ubuntu 通常推荐用 UFW,而不是直接操作 iptables:
sudo ufw status numbered
sudo ufw delete 编号
如果你愿意,可以贴出:
sudo iptables -S
或
sudo iptables -L -n --line-numbers
我可以帮你精确删除某一条规则。