【Wireshark】安装与使用指南

1. Wireshark 工具介绍

Wireshark 是一款开源的网络协议分析工具,主要用于:

  • 分析抓取的网络数据包,包含TCP/IP、HTTP、DNS、数据库等协议

  • 排查网络延迟、丢包、连接重置、服务无响应等问题

  • 学习网络协议和进行安全分析

核心原则:

Wireshark 负责"分析",tcpdump/dumpcap 负责"抓包"。

抓包点应选在目标流量一定会经过的机器上。


2. Wireshark 安装

Windows

  1. 访问官网 wireshark.org,下载 Windows 64-bit 安装包。

  2. 右键安装包,选择"以管理员身份运行"。

  3. 组件选择页保持默认,必须勾选 Npcap。

  4. 安装完成后打开 Wireshark,能看到 Wi-Fi 或以太网接口即正常。

由于外网下载速度可能较慢,因此提供现有安装包,内含已抓包的练手.pacp 文件:

获取途径:关注公众号【科创视野】回复 wireshark


macOS

  1. 下载 .dmg 镜像并打开。

  2. 将 Wireshark 拖入 Applications。

  3. 关键一步 :在同一镜像中运行 Install ChmodBPF.pkg。

  4. 否则会因权限不足无法抓包。


Linux(Ubuntu / Debian)

复制代码
sudo apt update
sudo apt install wireshark

安装过程中会询问:

Should non-superusers be able to capture packets?

选择 Yes。

如果误选 No,执行:

复制代码
sudo dpkg-reconfigure wireshark-common
sudo usermod -aG wireshark $USER

然后注销并重新登录。


3. Wireshark 使用

3.1 抓包在哪台机器进行

原则:

抓包点要尽量靠近故障边界。谁最可能知道真相,就在谁身上抓。

场景 优先抓包机器 目的
客户端报连接超时 服务端优先,客户端辅助 看 SYN 是否到达服务端
服务端报错或响应慢 服务端 看请求是否收到、响应是否发出
偶发丢包、重传 两端同时抓,或中间节点 对比时间戳,定位链路问题
数据库端口 2881 数据库服务端 + 客户端 确认 SQL 请求与响应
只能选一台 优先服务端 判断请求是否到达、服务端是否响应

如果服务端抓不到包,再去客户端抓,确认请求是否真正发出。

如果两端都有包但时间差很大,问题通常在网络链路或中间代理。


3.2 推荐抓包指令:tcpdump

Linux 服务器上推荐使用 tcpdump,稳定、轻量、适合生产环境。

基础命令:

复制代码
sudo tcpdump -i any -s 0 -nn port 2881 \
  -w /tmp/$(date "+%Y%m%d%H%M%S")_$(hostname)_2881.pcap

参数说明:

参数 含义
-i any 监听所有网卡
-s 0 抓完整数据包,不截断
-nn 不解析域名和端口名
port 2881 只抓源端口或目的端口为 2881 的流量
-w 写入 pcap 文件
文件名 包含时间、主机名、端口,便于区分

3.3 用 Wireshark 打开并分析

抓包完成后,将 .pcap 文件下载到安装了 Wireshark 的电脑,直接打开。

常用操作:

  1. 在顶部显示过滤器栏输入过滤条件。

  2. 点击任意数据包,查看中间详情面板的各层协议。

  3. 右键 TCP 包,选择 Follow(跟踪流) → TCP Stream,查看完整会话。

  4. 使用 Statistics → Conversations 查看流量对话。

  5. 使用 Statistics → IO Graph 查看流量随时间变化。

  6. 使用 Analyze → Expert Information 查看异常提示。


3.4 显示过滤器

打开 pcap 文件后,在 Wireshark 顶部的显示过滤器栏输入表达式,回车即可筛选数据包。

逻辑运算符:

  • &&:与

  • ||:或

  • !:非


搜索二进制内容

有时需要直接搜索数据包载荷中的字符串,例如 SQL 语句中的 select:

复制代码
# 在 TCP 载荷中搜索 select,区分大小写。
tcp contains "select"

# 忽略大小写,contains 做不到,需要改用正则匹配 matches
tcp matches "(?i)select"

# 在指定端口中搜索 select,适合数据库流量分析。
tcp.port == 2883 && tcp contains "select"

追踪特定的 TCP 流

由于客户端用了不同的端口(32418 和 31782)连接 2883,如果您只想看某一整条会话,最快的方法是:

在任意数据包上右键 → Follow → TCP Stream 。Wireshark 会自动生成一个 tcp.stream eq 0(或对应编号)的过滤器,只显示该连接的完整交互过程。


3.5 AI 分析

现在 AI 这么强,直接让 AI 分析抓包文件即可。


总结

Wireshark 是协议分析工具,tcpdump 是服务器抓包工具。

抓包位置优先选服务端;如果服务端没收到,再去客户端或中间节点抓。

推荐服务器抓包命令:

抓完后用 Wireshark 打开,结合显示过滤器、Follow TCP Stream 和 Expert Information,即可完成从抓包到排障的完整闭环。

相关推荐
ESDWAN1 小时前
跨境网络丢包怎么定位?用MTR和Traceroute分析链路问题
网络
砺星Leetx2 小时前
工业总线选型与对接实战:PROFINET、EtherCAT、EtherNet/IP、PROFIBUS、Modbus-TCP 与 CC-Link
网络·网络协议·tcp/ip·控制器·国产拧紧系统
2401_868534782 小时前
软考网络规划设计师SSL协议知识点详解
服务器·网络
Escalating_xu2 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
POMAGTOR5 小时前
【磁吸式连接器选型工程解析:结构原理、应用场景与选型可靠性要点】
网络·嵌入式硬件
阿文和她的Key8 小时前
PHP2Shell事故四层拆解:AI找洞是小时级,披露协调还是邮件级
网络·人工智能·架构·php
QZ1665609515910 小时前
数据库监测的主动防御:实时感知,看见即掌控
网络·安全·网络安全
北京中科新远科技11 小时前
高速接口兼容排查实战:OSFP、QSFP112与QSFP56如何逐层验证
linux·运维·网络
Lzg_na12 小时前
HDLC 协议详解
网络
今天背单词了吗98012 小时前
AI 网关:大模型时代的统一接入与安全防线
网络·人工智能·安全·ai·1024程序员节