首页/网络/网络排障速查/port / portrange 端口过滤

port / portrange 端口过滤

端口级过滤是排障最常用的精度:port 同时匹配源与目的、方向用 src/dst 限定、范围用 portrange;多端口用 or 连接必须加引号。

网络排障速查网络更新于 2026-10-13

端口层过滤

抓包时把范围收窄到端口是最常用的一步:写端口号会同时匹配源端口与目的端口,加上方向限定词就只匹配一侧,用范围限定词还能一次覆盖一段端口。多条件之间用逻辑词连接时必须整体加引号,否则会被命令解释器当成控制符号处理。掌握这几种写法,就能把海量报文缩小到与某个业务相关的那几条连接上。

基本信息

匹配范围默认同时匹配源与目的端口,因此一次抓到双向报文
方向限定加源或目的的限定词可只看一侧,判断方向时非常重要
范围写法范围限定词接受起止值,等价于两个条件用逻辑或连接
协议限定端口条件同时覆盖两种传输层协议,只要其一就显式写明协议
语法提示多条件表达式务必用引号包裹,语法错误会被直接报出而不会静默少抓

典型使用场景

  • 验证端口可达:只看目标端口,确认请求有没有到达、有没有被回绝
  • 排查解析相关流量:限定解析端口并区分传输协议
  • 数据库连接排错:只看数据库端口,观察连接建立与断开
  • 多端口业务巡检:用范围条件覆盖一组相邻端口
  • 降低噪声:把无关端口排除后,关键报文更容易被发现

端口过滤写法

端口过滤写法
tcpdump -nn -i eth0 port 53                        # 同时匹配源与目的端口 53
tcpdump -nn -i eth0 udp port 53                      # 明确只抓 UDP 的解析流量
tcpdump -nn -i eth0 src port 80 and dst port 1024-65535   # 服务端发出的响应
tcpdump -nn -i eth0 portrange 8000-9000              # 一段端口范围
tcpdump -nn -i eth0 'port 80 or port 443'            # 多端口必须整体加引号
tcpdump -nn -i eth0 'not port 22 and not port 123'   # 排除噪声:管理端口与时间同步
tcpdump -nn -i eth0 'tcp dst port 3306'              # 只看发往数据库端口的 TCP 报文

限定词速查

写法含义使用建议
端口号该端口的双向报文最基础的写法,先抓双向再分方向
源端口限定只看从该端口发出的报文判断服务端响应是否发出
目的端口限定只看发往该端口的报文判断请求是否到达
范围限定覆盖一段连续端口批量端口场景更简洁
协议前缀只匹配某种传输层协议同名端口的两种协议容易混淆时必加
排除写法把指定条件排除在外清理管理流量与监控噪声
同一个端口号在两种传输层协议上都可能有流量,只写端口号会同时抓到两类报文,排查时容易被误导,需要区分时显式写明协议前缀。
过滤器语法错误会立刻被报出,不会静默地只抓一部分,所以可以放心先跑一次验证表达式是否正确。
检查一个完整交互时,最简单的做法是先只写端口号抓双向,再在回读阶段叠加方向条件;抓的时候少写条件,分析的时候多写条件。
混用源与目的端口的条件时注意方向:加错方向会抓到完全相反的报文,产生没有响应的错误结论。

易错点

  • 多条件表达式忘加引号,命令解释器把逻辑词当成命令分隔符,直接报错或行为异常
  • 只写端口号抓解析流量,结果抓到的多是另一种协议的报文,误判服务行为
  • 源与目的限定词用反,抓到的正是相反方向的报文,得出对方没有回应的错误结论
  • 用排除条件把需要的报文一起排除掉了,事后回读才发现现场证据缺失
  • 在等价路径存在时仍用两个条件连接而不使用范围写法,表达式冗长易错
  • 抓包点选在本机而不是中间设备,却按路径视角解读结果,忽略本机收发的不对称

数据来源与参考

  • pcap-filter(7):port / portrange / 方向限定词

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌