看规则有两种视角
iptables 排障第一步是把现状看清楚,这里有两个互补的命令:iptables -S 输出可直接回放的规则文本(与 iptables-restore 兼容),适合留档与版本比对;iptables -L -n -v 带计数器,能看出哪条规则真正被命中,适合定位问题。变更前导出快照是固定动作,规则一旦被覆盖,没有快照就只能靠回忆重建。
基本信息
| 加固项 | 规则快照与命中分析 |
|---|---|
| 适用平台 | Linux(iptables 与 iptables-nft 后端均适用) |
| 权限要求 | root |
| 相应命令 | iptables-save、iptables-restore、ip6tables、nft |
| 注意 | IPv4 与 IPv6 是两套独立规则表,必须分别核查 |
典型使用场景
- 变更前导出快照,作为回滚与留档依据
- 排查放行规则存在但访问不通的原因
- 确认是否有手工遗留的历史规则与 firewalld 规则冲突
- 应急时快速清空或加固规则并保留现场
- 定期备份规则并与基线做差异比对
查看与快照
查看与快照
iptables -S # 可回放格式,适合留档
iptables -L -n -v --line-numbers # 计数器加行号,适合排查命中
ip6tables -S # IPv6 单独核查,别漏
iptables -t nat -S # NAT 表:端口映射常写在这里
nft list ruleset # 若后端为 nft,直接看权威规则集
iptables -S > /root/rules-$(date +%F).v4 # 快照留档恢复与清理
恢复与清理
iptables-restore < /root/rules-2026-10-01.v4 # 恢复快照
# 清空全部规则(应急用,操作前务必确认自有带外通道)
iptables -F && iptables -X && iptables -P INPUT ACCEPT
# 注意:iptables -F 只清当前表,nat、mangle 表要分别处理-L -v 输出逐列读法
| 列 | 含义 | 正常与异常 |
|---|---|---|
| num(行号) | 规则在链中的顺序 | 插入规则时用来定位,删除也按它 |
| pkts | 匹配到的包数量 | 关键规则长期为 0 说明流量没走这里 |
| bytes | 匹配到的字节数 | 与 pkts 一起判断是否真的生效 |
| target | 动作:ACCEPT/DROP/REJECT/链名 | 限源规则多为 ACCEPT,兜底多为 DROP |
| prot、opt、in、out、source、destination | 协议、选项与接口、源与目的地址 | in 列为空表示不限定入接口 |
iptables -S 的输出可以直接保存并用于后续恢复,是手工环境里最可靠的备份方式;配合 counters 快照与版本库留档,能回答“这条规则是什么时候加的、是否还有人用”这类审计问题。
计数器是从上次读取或清零起累计的,用 iptables -Z 清零会丢掉原始证据,应急排查时不要随手清零。另外在只有远程连接的环境里执行清空规则或改默认策略,可能立刻断链,务必先确认带外通道可用。