防火墙规则的查看与清除

防火墙规则的查看与清除

列出当前系统filter table的几条链规则:
[root@localhost ~]# iptables -L -n
列出nat表的链信息:
[root@localhost ~]# iptables -t nat -L -n

清除规则
清除本机防火墙的所有规则设定:
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables –Z
上面三条指令可以清除防火墙的所有规则,但是不能清除预设的默认规则(policy)


注释:

防火墙规则查看与清除(精讲版)


一、规则查看(你的命令是对的)

# 1. 查看filter表(默认)
iptables -L -n
iptables -L -n -v            # -v 显示更详细(流量、包量)
iptables -L -n --line-numbers # 显示行号(删规则用)

# 2. 查看nat表
iptables -t nat -L -n
iptables -t nat -L -n -v --line-numbers

# 3. 查看mangle表
iptables -t mangle -L -n

# 4. 查看raw表
iptables -t raw -L -n

# 5. 查看所有表所有规则
iptables-save                # 真正的完整导出

✅ 你的命令完全正确,生产天天用


二、规则清除(三件套详解)

# 1. -F: 清空规则(flush)
iptables -F        # 清空filter表所有链的规则
iptables -t nat -F # 清空nat表

# 2. -X: 删除自定义链(delete custom chain)
iptables -X        # 删除filter表所有空的自定义链
iptables -t nat -X # 删除nat表自定义链

# 3. -Z: 计数器归零(zero)
iptables -Z        # 把包计数、流量计数清零

⚠️ 你特别注明的关键点:

这三条清不掉默认策略(policy)!

# 默认策略还在!
iptables -L -n | grep policy
# Chain INPUT (policy DROP)     ← 还是DROP!
# Chain FORWARD (policy DROP)
# Chain OUTPUT (policy ACCEPT)

三、完整清除+重置(生产慎用!)

#!/bin/bash
# 完全重置防火墙(救命用)

# 1. 清空所有规则
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t raw -F

# 2. 删除自定义链
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -t raw -X

# 3. 计数器归零
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
iptables -t raw -Z

# 4. ⚠️⚠️ 关键步骤:重置默认策略为ACCEPT!!!
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

echo "✅ 防火墙已完全重置为允许所有"

⚠️ 远程执行必加:

# 别把自己锁外面!
iptables -P INPUT ACCEPT && iptables -F

四、删除单条规则(更常用)

# 方法1:按行号删(推荐)
iptables -L -n --line-numbers
# Chain INPUT (policy DROP)
# num  target     prot opt source         destination
# 1    ACCEPT     tcp  --  0.0.0.0/0      0.0.0.0/0    tcp dpt:22
# 2    ACCEPT     tcp  --  0.0.0.0/0      0.0.0.0/0    tcp dpt:80

iptables -D INPUT 2     # 删掉第2条(80端口)

# 方法2:按规则内容删
iptables -D INPUT -p tcp --dport 22 -j ACCEPT

五、实战场景对比

操作命令效果是否删policy
清空规则iptables -F规则没了,策略还在❌ 否
删自定义链iptables -X空的自定义链没了❌ 否
重置策略iptables -P INPUT ACCEPT默认允许✅ 是
完全重置上面脚本干干净净✅ 是
重启iptablessystemctl restart iptables加载配置文件取决于配置

六、误操作自救(你可能会遇到)

场景1:-F后连不上(策略是DROP)

# 症状:规则没了,但policy DROP,新连接进不来
# 你已经连着的SSH不会断,但新SSH进不来

# 自救:从当前连接立即加规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

场景2:不知道自己policy是DROP还是ACCEPT

# 查看
iptables -L -n | grep policy

# 稳妥做法:先加允许,再改策略
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP      # 安全了

七、一句话总结

-L 查看,-F 清规则,-X 删自定,-Z 清零
⚠️ policy 要单改:-P INPUT ACCEPT
远程操作先开22,再DROP,再-F,顺序错就失联!

iptables的执行流程

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注