网络工程师排查网络故障,Wireshark常用命令少不了"

admin 2026-10-30 13:57:03 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

网络工程师排查网络故障,Wireshark常用命令少不了

原创

圈圈
圈圈

网络技术干货圈

2026年10月30日 08:55
江苏

去阅读

Wireshark 是网络工程师排查网络故障时非常常用的抓包分析工具。严格来说,Wireshark 主要通过显示过滤器(Display Filter)筛选已经捕获的数据包,而命令行工具 tshark 则可以直接抓包、过滤、读取文件和导出分析结果。

如果你是做网络运维、交换机故障排查或 Linux 服务器运维,建议先掌握常用的 Wireshark 过滤表达式,再学习 tshark 命令。

下面这些表达式可以直接输入 Wireshark 窗口顶部的显示过滤器栏中。

1. 按 IP 地址过滤:

目的 过滤表达式
查看指定源 IP ip.src == 192.168.1.10
查看指定目的 IP ip.dst == 192.168.1.20
查看与指定 IP 有关的流量 ip.addr == 192.168.1.10
查看两个 IP 之间的通信 ip.addr == 192.168.1.10 && ip.addr == 192.168.1.20
排除指定 IP ip.addr != 192.168.1.10

注意:ip.addr != 192.168.1.10 会筛选出该字段不匹配的报文,并不等同于简单地排除所有涉及该 IP 的通信。若要排除与该 IP 有关的全部 IPv4 报文,建议使用:

!(ip.addr == 192.168.1.10)

2. 按协议过滤:

协议 过滤表达式
TCP tcp
UDP udp
DNS dns
HTTP http
HTTPS / TLS tls
ARP arp
ICMP / Ping icmp
DHCP dhcp
IPv6 ipv6
OSPF ospf
STP stp
VLAN 标签 vlan

例如,排查电脑无法访问网站的问题时,可以先输入 dns 检查域名解析,再输入 tcp 或 tls 检查后续连接过程。

部分协议的解析名称会因 Wireshark 版本和协议类型而有所不同,例如 DHCPv6 通常使用 dhcpv6。

按端口和 TCP 连接状态过滤

这部分在日常网络故障排查中尤其有用。

排查目标 显示过滤器
查看 TCP 80 端口 tcp.port == 80
查看 TCP 443 端口 tcp.port == 443
查看 UDP 53 端口 udp.port == 53
查看源端口 12345 tcp.srcport == 12345
查看目的端口 22 tcp.dstport == 22
查看 TCP SYN 报文 tcp.flags.syn == 1
查看 TCP RST 报文 tcp.flags.reset == 1
查看 TCP 重传报文 tcp.analysis.retransmission
查看重复 ACK tcp.analysis.duplicate_ack
查看 TCP 三次握手相关报文 tcp.flags.syn == 1

最后一项需要注意,SYN 过滤器只筛选 SYN 置位的报文。要分析完整的 TCP 三次握手,需要同时观察 SYN、SYN-ACK 和最终 ACK。

逻辑组合过滤器

Wireshark 还支持使用逻辑运算符组合条件。

运算符 含义
&& 并且
|| 或者
! 取反
== 等于
!= 不等于
> 、< 大于、小于

例如,只查看某台服务器的 HTTP 或 HTTPS 流量:

ip.addr == 192.168.1.100 && (tcp.port == 80 || tcp.port == 443)

查看指定服务器的 TCP 重传:

ip.addr == 192.168.1.100 && tcp.analysis.retransmission

查看 ICMP 报文,但排除指定源地址:

icmp && !(ip.src == 192.168.1.10)

这些组合条件可以大幅减少无关数据包,让故障分析更加高效。具体过滤字段和语法可以查阅 Wireshark 官方的 显示过滤器参考手册。

Wireshark 的命令行工具 TShark

如果需要在 Linux 服务器上抓包,或者批量分析 .pcapng、.pcap 文件,可以使用 TShark。它是 Wireshark 配套的命令行网络协议分析工具。

1. 查看网卡列表

tshark -D

输出网卡编号后,可以选择对应接口进行抓包。

2. 实时抓包

sudo tshark -i eth0

指定接口 eth0,实时显示捕获的数据包。

3. 抓包并保存文件

sudo tshark -i eth0 -w capture.pcapng

按 Ctrl+C 停止抓包,数据会保存到文件中,方便后续用 Wireshark 图形界面分析。

4. 读取已有抓包文件

tshark -r capture.pcapng

只查看 DNS 报文:

tshark -r capture.pcapng -Y \"dns\"

只查看指定 IP 的流量:

tshark -r capture.pcapng -Y \"ip.addr == 192.168.1.100\"

5. 抓取指定端口的流量

sudo tshark -i eth0 -f \"tcp port 443\"

这里的 -f 使用的是捕获过滤器,在抓包时就筛选流量,而不是抓完后再筛选。

6. 导出指定字段

tshark -r capture.pcapng \\
  -T fields \\
  -e frame.time \\
  -e ip.src \\
  -e ip.dst \\
  -e tcp.dstport

这个命令会输出报文时间、源 IP、目的 IP 和 TCP 目的端口,适合进一步整理数据或编写自动化分析脚本。

一个特别容易混淆的知识点

Wireshark 有两种过滤方式,语法并不相同。

对比项 捕获过滤器 显示过滤器
使用时机 抓包之前或抓包过程中 抓包之后查看数据时
常见位置 Capture Options 中的过滤设置 主窗口顶部的过滤器栏
常用参数 TShark 的 -f TShark 的 -Y
示例 host 192.168.1.10 ip.addr == 192.168.1.10
主要作用 减少实际捕获的数据 筛选已经捕获的数据

例如:

# 捕获过滤器
sudo tshark -i eth0 -f \"port 53\"

# 显示过滤器
tshark -r capture.pcapng -Y \"dns\"

两者最大的区别是:捕获过滤器决定哪些数据包被捕获,显示过滤器决定哪些已捕获的数据包显示出来。


如果平时主要排查网络连通性、DNS 故障、TCP 连接异常和服务器访问问题,可以优先记住下面这些:

ip.addr == 目标IP

筛选指定主机的流量

dns

排查域名解析

tcp.port == 443

查看 HTTPS 相关 TCP 流量

icmp

检查 Ping 请求和响应

tcp.flags.syn == 1

定位 TCP 连接建立过程

tcp.flags.reset == 1

查找连接重置报文

tcp.analysis.retransmission

检查 TCP 重传

arp

检查 IPv4 地址解析

tcp.stream eq 0

查看编号为 0 的 TCP 流

其中,tcp.stream eq 0 中的 0 只是示例编号。实际分析时,可以先选中某个 TCP 报文,再通过 Wireshark 的“Follow TCP Stream(追踪 TCP 流)”功能查看对应会话。

掌握这些过滤器后,再结合 Wireshark 的 TCP 流图、专家信息、会话统计等功能,就能处理大部分常见的网络抓包分析任务。

网络工程师排查网络故障,Wireshark常用命令少不了" 网络安全文章

网络工程师排查网络故障,Wireshark常用命令少不了"

本文介绍网络工程师使用Wireshark排查网络故障的常用方法,涵盖显示过滤器表达式、按IP协议端口及TCP状态过滤、逻辑组合条件,以及命令行工具TShark的抓包与文件分析用法,并区分捕获过滤器与显示过滤器的差异。建议优先掌握常用过滤表达式,结合TShark提升排查效率。
ProxyPin拿下14k星:跨平台免费抓包神器,还内置MCP让AI直接读流量" 网络安全文章

ProxyPin拿下14k星:跨平台免费抓包神器,还内置MCP让AI直接读流量"

ProxyPin是一款14k星跨平台免费抓包工具,基于Flutter开发,支持扫码连接、请求重写、AES解密等特性。其内置MCP服务可让AI助手直接读写流量数据,提升调试效率但存在安全风险。文章建议蓝队关注AI客户端连接的本地服务清单、HAR数据存储权限及代理规则变更审计,强调工具无罪但配置需谨慎。
评论:0   参与:  0