首页/网络/抓包与流量分析速查/Wireshark 按 TCP 端口过滤
Wireshark 技巧75 条

Wireshark 按 TCP 端口过滤

tcp.port 双向匹配端口,tcp.srcport / tcp.dstport 限定方向;观察客户端发起的会话用 dstport 更干净。

tcp.port 在做什么

tcp.port 按传输层端口数字筛选报文,默认匹配源端口与目的端口中的任意一侧;tcp.srcport 与 tcp.dstport 用来限定方向。观察客户端发起的会话时,用 tcp.dstport == N 更干净,因为结果里不会混进服务端的回包;反过来用 tcp.srcport == N 就是只看服务端发出的方向。多个端口可以用集合写法一次写完,端口区间用两个比较运算符组合表达。注意它只管 TCP,UDP 上同号端口的流量不会命中。

基本信息

双向匹配tcp.port == 443
方向限定tcp.srcport == 443 / tcp.dstport == 443
集合写法tcp.port in {80, 443, 8080}
区间写法tcp.port >= 8000 && tcp.port <= 8100
范围限制只匹配 TCP,UDP 上同号端口要用 udp.port 单独查

典型使用场景

  • 定位某个服务端口的全部会话,作为进一步分析的起点
  • 只看客户端发起的请求方向,排除服务端回包带来的干扰
  • 一次观察多个并行服务的流量,例如灰度期间新旧端口同时在线
  • 排除监控与心跳占用的端口,让视图只剩业务流量
  • 与地址字段组合,精确到某台客户端访问某个服务的单向流量

常用示例

常用示例
tcp.port == 443                                    # 该端口的双向流量
tcp.dstport == 3306 && ip.dst == 10.0.0.20         # 只看发往数据库的请求
tcp.srcport == 8443                                # 只看服务端发出的方向
tcp.port in {80, 443, 8080}                        # 多端口集合
tcp.port >= 8000 && tcp.port <= 8100               # 端口区间
tcp.port == 8080 && http.request.method == "POST"  # 叠加应用层条件
tcp.dstport == 443 && tcp.flags.syn == 1           # 该端口的建连请求
tcp.port == 443 && tcp.analysis.retransmission     # 该端口上的重传

端口条件组合

表达式匹配内容使用场景
tcp.port == 443源或目的任一侧等于该端口抓该端口的全部往来,起手式
tcp.dstport == 3306只有目的端口匹配统计客户端请求与连接尝试
tcp.srcport == 8443只有源端口匹配确认服务端是否真的发出了响应
tcp.port in {A, B}集合中的任意端口多服务并列观察,写法比多个或更短
tcp.port == 443 && ip.addr == A端口加地址收窄锁定某台主机访问该服务的流量
端口是配置约定而不是协议标识。同一个端口号上可能同时跑 TCP 与 UDP(例如 443 上的 TLS 与 QUIC),只查 TCP 会漏掉一半流量,Web 类问题两边都要看。
经过 NAT、负载均衡或代理后端口可能已被改写。跨设备对照时,先确认抓包点位于改写之前还是之后,否则会把端口不一致误判成链路异常。

与其他字段配合

与其他字段配合
tcp.port == 443 && tcp.stream == 12                # 只看某条流
udp.port == 443                                    # QUIC 要单独查 UDP
tcp.port == 443 && !(ip.addr == 10.0.0.5)          # 排除探活来源
tcp.dstport == 443 && tcp.flags.rst == 1           # 该端口的连接被重置

判读要点

  • 同一目的端口上大量短会话说明连接复用不足,值得结合连接池配置一起看
  • 客户端端口是随机的,统计客户端数量要看源地址而不是源端口
  • 端口条件与非业务端口排除条件一起用时,注意别把服务端回包也排除掉
  • 同一端口既有正常请求又有异常重置时,用 tcp.stream 拆开逐条定位

端口与方向的组合用法

  • 双向看端口:掌握该服务上的全部往来,适合第一轮摸底
  • 只看目的端口:统计客户端请求量,结果不会被服务端回包放大
  • 只看源端口:确认服务端是否真的发出了响应,排查单向不通很有效
  • 端口加地址双向限定:把一台客户端与一个服务的会话单独隔离出来
  • 端口加时间窗:结合时间字段切出故障发生的那几分钟,避免被海量正常流量淹没
  • 端口加标志位:只看该端口上的建连与复位,用少量报文判断服务可用性

易错点

  • 只查 TCP 端口会漏掉 UDP 上的同号端口,Web 与 DNS 都同时存在这种双协议情况
  • tcp.port 同时命中源与目的,用抓包结果统计请求数会偏大,需要改用 tcp.dstport
  • NAT 与代理之后端口已改写,跨设备对照前不确认拓扑会把正常现象误判成异常
  • 端口不等于协议,服务迁到新端口后旧过滤条件会静默返回空结果
  • 把端口条件堆太多而不拆步骤,出现空结果时分不清是确实没有流量还是条件写错

数据来源与参考

  • Wireshark 显示过滤器参考(tcp.port)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌