iptables -L 显示无目标链规则,但是iptables-save显示仍存在链规则原因分析
iptables -L 默认显示的是 filter 表中的链规则。
这是由以下核心特性决定的:
- filter 表是默认操作表:在未使用 -t 参数显式指定表名的情况下,所有 iptables 命令(包括 -L)都作用于 filter 表。
- 输出内容范围:该命令会列出所选链中的所有规则。如果不指定链名(如 INPUT, FORWARD, OUTPUT),则会列出 filter 表下的所有内建链的规则。这些内建链通常包括 INPUT, FORWARD, OUTPUT 及其配置的策略(policy ACCEPT/DROP 等)和具体规则条目。
- 其他表需显式指定:要查看其他表(如 nat, mangle, raw, security)的规则,必须使用 -t 选项,例如 iptables -t nat -L。
- 简单来说,执行 iptables -L 等同于执行 iptables -t filter -L,它输出的是系统中应用最广泛的包过滤规则所在的 filter 表下的链规则集合。