服务器测评网
我们一直在努力

linux 查看iptables

Linux 查看 iptables:全面指南与实用技巧

在 Linux 系统管理中,iptables 是用于配置 Linux 内核防火墙的核心工具,它通过规则链(Chain)和规则(Rule)来控制网络数据包的流向,从而实现网络安全、访问控制等功能,熟练掌握 iptables 的查看方法,是排查网络问题、验证防火墙策略的关键,本文将详细介绍如何使用不同命令查看 iptables 规则,并解析输出信息的含义,同时提供实用技巧。

linux 查看iptables

基础查看命令:iptables -L

查看 iptables 规则最常用的命令是 iptables -L-L 表示列出(List)所有规则链,默认情况下,该命令会显示所有链(INPUT、OUTPUT、FORWARD)的规则,并以数字格式(-n)显示 IP 地址和端口号,避免 DNS 解析带来的延迟。

执行以下命令:

sudo iptables -L -n -v  
  • -n:以数字形式显示地址和端口,不进行 DNS 反向解析。
  • -v:显示详细信息,如数据包计数、网络接口等。

输出结果通常包含以下列:

  • Chain:规则所属的链(如 INPUT、OUTPUT)。
  • target:匹配数据包后的动作(如 ACCEPT、DROP、REJECT)。
  • prot:协议类型(如 tcp、udp、icmp)。
  • source:源 IP 地址。
  • destination:目标 IP 地址。
  • pkts/bytes:匹配的数据包数量和字节数。

通过 -v 参数,可以直观看到规则的命中次数(pkts),这对于调试高频访问的规则非常有帮助。

查看特定链的规则

如果只需要查看某个特定链的规则(如仅关注入站规则),可以使用 -S--list-rules 参数,或直接指定链名称。

sudo iptables -L INPUT -n -v  

该命令仅显示 INPUT 链的规则,适用于排查针对本地服务的访问控制问题。

iptables -S 命令以更简洁的格式显示规则,适合直接复制或用于脚本中:

sudo iptables -S INPUT  

输出格式类似 -A INPUT -p tcp --dport 22 -j ACCEPT,表示向 INPUT 链添加(-A)一条允许 TCP 端口 22 的规则。

linux 查看iptables

查看规则编号与链的默认策略

在修改或删除规则时,通常需要知道规则的编号,使用 --line-numbers 参数可以为规则添加编号:

sudo iptables -L INPUT --line-numbers -n  

输出中每条规则前会显示序号,

num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22  
2    DROP       all  --  192.168.1.100        0.0.0.0/0           

通过编号,可以精准执行删除操作(如 iptables -D INPUT 2)。

iptables -L 的最后几行会显示链的默认策略(policy),如 policy ACCEPTpolicy DROP,默认策略决定了不匹配任何规则的数据包的处理方式,是防火墙设计的核心逻辑之一。

查看 NAT 和其他表的规则

iptables 默认包含三个表(table):filter(默认表,用于包过滤)、nat(网络地址转换)、mangle(修改数据包字段)和 raw(跟踪连接),默认情况下,iptables -L 仅显示 filter 表的规则,若需查看其他表,需使用 -t 参数:

查看 NAT 表的规则:

sudo iptables -t nat -L -n -v  

NAT 表常用于配置端口转发或 SNAT(源地址转换),其规则链包括 PREROUTING、POSTROUTING 和 OUTPUT,通过查看这些链的规则,可以确认是否正确配置了端口映射或地址转换。

实时监控规则匹配情况

除了静态查看规则,iptables -L-v 参数显示的 pktsbytes 字段可以帮助分析规则的实际使用情况,若某条 DROP 规则的 pkts 值很高,说明大量数据包被拦截,可能需要进一步检查是否误封合法流量。

linux 查看iptables

使用 watch 命令可以实时监控规则变化:

watch -n 1 "sudo iptables -L INPUT -n -v"  

每隔 1 秒刷新一次规则列表,适用于观察临时规则或测试防火墙策略时的动态效果。

常见问题与技巧

  1. 规则过多时筛选输出
    使用 grep 过滤特定协议或端口,

    sudo iptables -L INPUT -n | grep "dpt:22"  
  2. 查看自定义链
    若存在自定义链(如通过 -N 创建),可通过 iptables -L 查看其规则,并追踪被哪些主链调用(-v 显示引用次数)。

  3. 备份与恢复规则
    在修改规则前,建议先备份:

    sudo iptables-save > /etc/iptables/rules.v4  

    恢复时使用:

    sudo iptables-restore < /etc/iptables/rules.v4  

查看 iptables 规则是 Linux 网络管理的基础技能,通过 iptables -L 及其衍生参数(如 -n-v--line-numbers),可以灵活获取不同表、链的详细信息,并结合规则编号、命中次数等数据实现精准调试,无论是排查网络故障还是优化防火墙策略,熟练掌握这些命令都能提升管理效率,在实际操作中,建议结合 iptables-saveiptables-restore 实现规则的持久化与备份,确保系统安全稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » linux 查看iptables