Linux iptables 查看:全面掌握防火墙规则状态与管理
在 Linux 系统中,iptables 是最常用的防火墙工具之一,它通过控制网络数据包的流动来保障系统安全,要有效管理 iptables,首先需要熟练掌握查看规则、链状态及默认策略的方法,本文将详细介绍如何使用 iptables 命令查看防火墙规则,涵盖基本语法、常用选项、链状态分析以及高级技巧,帮助用户全面理解 iptables 的当前配置。

基础查看命令:iptables -L
查看 iptables 规则最常用的命令是 iptables -L(List 的缩写),该命令会列出所有链(Chain)中的规则,包括规则编号、目标(Target)、协议(Protocol)、源地址(Source)、目标地址(Destination)以及匹配条件等关键信息。
执行以下命令:
sudo iptables -L
系统会显示 INPUT、OUTPUT、FORWARD 三个默认链的规则,每条规则按顺序编号,便于后续修改或删除,默认情况下,-L 选项不会显示计数器(数据包和字节数)的统计信息,也不会显示链的默认策略(Policy)。
显示计数器与默认策略:-n -v --line-numbers
为了获取更详细的信息,可以组合使用多个选项:
-n(Numeric):以数字形式显示地址和端口,避免 DNS 查询,加快显示速度。-v(Verbose):显示详细信息,包括数据包计数、字节计数、网络接口等。--line-numbers:为每条规则添加编号,方便后续操作。
示例命令:
sudo iptables -L -n -v --line-numbers
输出结果中,每条规则前会显示序号,pkts 和 bytes 列分别匹配该规则的数据包数量和总字节数,通过这些信息可以分析规则的实际使用频率,链的最后一行会显示默认策略(如 ACCEPT 或 DROP)。
查看指定链的规则:-t 指定表
iptables 默认操作 filter 表,该表主要用于数据包过滤,但 iptables 还包含 nat(网络地址转换)、mangle(数据包修改)和 raw(原始数据包处理)表,若需查看其他表的规则,需使用 -t 选项指定表名。

查看 nat 表的 PREROUTING 链规则:
sudo iptables -t nat -L PREROUTING -n -v
不同表的链功能不同:filter 表的 INPUT 链控制进入本机的数据包,OUTPUT 链控制本机发出的数据包,FORWARD 链控制转发数据包。nat 表则用于修改 IP 地址或端口,常用于路由器和 NAT 网关。
查看链的默认策略与规则统计
默认策略(Policy)决定了当数据包不匹配任何规则时的处理方式。INPUT 链的默认策略为 DROP 时,所有未明确允许的数据包将被丢弃,要单独查看链的默认策略,可以使用 -S 选项(Show rules in iptables-restore format):
sudo iptables -S INPUT
该命令会以更简洁的格式显示 INPUT 链的所有规则及默认策略,
-P INPUT DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-P 表示默认策略,-A 表示追加规则(Append)。
查看特定规则的匹配条件
当规则较多时,可能需要根据协议、端口或 IP 地址筛选查看,此时可以结合 grep 命令过滤输出结果,查看所有允许 TCP 端口 80(HTTP)的规则:
sudo iptables -L INPUT -n | grep "tcp dpt:80"
或者查看来自特定 IP 地址(如 168.1.100)的规则:

sudo iptables -L INPUT -n | grep "192.168.1.100"
这种方法能快速定位关键规则,适用于防火墙故障排查或策略审计。
查看规则包与字节计数
通过 -v 选项可以查看规则的统计信息,但若需实时监控数据包流动情况,可以使用 iptables -L -v 定期查看计数器变化,若发现某条规则的 pkts 计数异常增长,可能存在恶意扫描或异常流量,需进一步分析。
iptables -Z(Zero)可以重置所有计数器,常用于流量监控前的数据清零:
sudo iptables -Z
持久化规则查看:iptables-save
某些 Linux 发行版(如 CentOS/RHEL)使用 iptables-services 或 netfilter-persistent 保存规则,重启后规则不会丢失,要查看当前持久化的规则,可以使用 iptables-save 命令:
sudo iptables-save
该命令会以 iptables-restore 可识别的格式输出所有规则,包括表、链、规则及默认策略,输出结果可以直接保存到文件或通过管道传递给其他命令处理。
常见问题与注意事项
- 权限问题:
iptables需要 root 权限执行,普通用户需使用sudo或切换至 root。 - 规则顺序:iptables 按顺序匹配规则,一旦数据包匹配某条规则,后续规则不再检查,查看规则时需注意顺序是否合理。
- 链状态:
iptables -L默认不显示自定义链(Custom Chain),若需查看所有链,可使用iptables -L -n的扩展格式。 - 日志规则:若规则中包含
LOG目标,查看日志文件(如/var/log/messages)可匹配被记录的数据包信息。
熟练掌握 iptables 查看命令是管理 Linux 防火墙的基础,通过 -L、-n、-v、--line-numbers 等选项的组合,可以灵活查看规则详情、统计信息和默认策略,结合 grep 过滤和 iptables-save 持久化查看,能进一步提升防火墙管理的效率,无论是日常运维还是安全审计,这些技巧都能帮助用户快速理解 iptables 的当前状态,确保网络策略的正确性与安全性。















