3、Wireshark基础:安装、界面与首选项
Wireshark 这东西,说白了就是网络世界的「听诊器」。你想想看,数据包在网线里飞来飞去,肉眼根本看不见。Wireshark 能把这些「电信号」翻译成我们能看懂的结构化信息。这一章,咱们就把这个工具装好、界面认熟、配置调顺。
核心目标:完成 Wireshark 的安装部署,熟悉主窗口三大区域(包列表、包详情、包字节),并掌握首选项中的关键调优项。
3.1 安装Wireshark——别踩这些坑
安装本身不复杂,但有几个细节我吃过亏,得跟你念叨念叨。
3.1.1 下载与版本选择
去官网 wireshark.org 下载。别去第三方站点,我见过有人下到捆绑了广告软件的版本。
- 稳定版 vs 开发版:选 Stable Release。开发版可能有新功能,但稳定性没保障。我在项目里只用稳定版,省心。
- 64位 vs 32位:现在机器基本都是 64 位了,直接选 64-bit Installer。32 位版本抓大文件时会内存不足。
- Portable 版:如果你只是临时用用,或者没有管理员权限,可以选 Portable。但我建议还是装完整版,因为 WinPcap/Npcap 驱动需要安装。
3.1.2 安装过程中的关键选项
安装时一路 Next 也行,但有两个地方你得留意。
- 选择组件:默认全选就行。如果你硬盘空间紧张,可以把「Tools」下的「Capinfos」「Editcap」等工具去掉,但建议保留。
- 安装 Npcap:这是抓包的核心驱动。Wireshark 会提示你安装 Npcap。一定要勾选「Install Npcap in WinPcap API-compatible Mode」。为什么?因为很多老脚本和工具只认 WinPcap 的接口。我曾经因为没勾这个,导致一个自动化抓包脚本跑不起来,排查了半天。
注意:安装 Npcap 时,如果系统已经装了旧版 WinPcap,建议先卸载干净再装新版。否则可能驱动冲突,导致抓不到包。
3.1.3 安装后验证
装完后,打开命令行,输入 tshark -v。如果能看到版本信息,说明安装成功。tshark 是 Wireshark 的命令行版本,后面章节我们会用到。
C:\> tshark -v
TShark (Wireshark) 4.2.0 (v4.2.0-0-g54aedf3c3c3c)
3.2 界面介绍——三大区域与过滤栏
第一次打开 Wireshark,界面可能有点吓人。别慌,其实就三大块。我画了张图,你一看就明白。
3.2.1 过滤栏
过滤栏在界面最顶部。这是你日常使用频率最高的地方。你可以在里面输入过滤表达式,比如 tcp.port == 80,然后按回车,包列表里就只显示 HTTP 流量了。
我个人习惯把常用过滤表达式存成「显示过滤按钮」。怎么存?后面首选项部分会讲。
小技巧:过滤栏输入时,Wireshark 会自动提示补全。如果你不确定某个字段名,输入几个字母,它会列出所有匹配项。比如输入 ip.,就会弹出 ip.src、ip.dst、ip.ttl 等。
3.2.2 包列表
这是抓包后最直观的区域。每一行就是一个数据包。默认显示 7 列:
| 列名 | 含义 | 我常用的场景 |
|---|---|---|
| No. | 包序号(从1开始) | 定位特定包时用 |
| Time | 时间戳(相对时间) | 分析延迟抖动时看这个 |
| Source | 源IP地址 | 一眼看出流量从哪来 |
| Destination | 目的IP地址 | 一眼看出流量去哪 |
| Protocol | 协议类型(TCP/UDP/HTTP等) | 快速筛选协议 |
| Length | 包长度(字节) | 发现异常大包时很有用 |
| Info | 包摘要信息 | 快速了解包内容 |
点击任意一列的标题,可以按该列排序。比如点击「Time」列,包就按时间顺序排列。再点一次,倒序。
3.2.3 包详情与包字节
包列表选中一个包后,下面两个区域会同步更新。
- 包详情:以树形结构展示协议层。从物理层(Frame)到应用层(HTTP/DNS等),一层层展开。你可以点击每一层前面的三角箭头展开看细节。比如展开「Transmission Control Protocol」,就能看到源端口、目的端口、序列号、确认号等。
- 包字节:以十六进制和 ASCII 形式展示原始数据。左边是十六进制,右边是对应的 ASCII 字符。如果你在包详情里选中某个字段(比如「Source Port」),包字节里对应的字节会被高亮。这个功能在分析自定义协议时特别好用。
3.3 首选项配置——让Wireshark更顺手
默认配置能用,但不好用。我每次装完 Wireshark,第一件事就是调首选项。下面这几个配置项,我建议你也改一改。
3.3.1 时间显示格式
默认时间显示的是「相对时间」(从抓包开始算)。但我更习惯看「绝对时间」,方便跟系统日志对时间。
路径:Edit → Preferences → Appearance → Columns,找到「Time」列,把「Type」改成「Absolute date and time」。
我的习惯:我一般用「Seconds since beginning of capture」做分析,用「Absolute date and time」做取证。两个场景切换着用。
3.3.2 自动滚动与缓冲区大小
抓包时,包列表会不断刷新。默认是自动滚动的,但如果你在分析某个包,突然新包刷进来,你的视线就跑了。我建议在抓包时按一下「Auto Scroll」按钮(工具栏上的小锁图标),把它关掉。
另外,缓冲区大小也值得调。默认是 2MB,如果你抓高流量环境(比如千兆网络),很容易丢包。我一般调到 20MB 或更高。
路径:Capture → Options → 选择网卡 → 点击「Edit」→ 在「Buffer size」里输入 20000。
注意:缓冲区不是越大越好。设太大,内存占用会飙升。如果你的机器只有 8GB 内存,设到 50MB 可能就卡了。根据你的机器配置来。
3.3.3 显示过滤按钮
这个功能能大幅提升你的效率。你可以把常用的过滤表达式存成按钮,点一下就能切换。
路径:Edit → Preferences → Filter Buttons → 点击「New」。
我常用的几个:
| 标签名 | 过滤表达式 | 用途 |
|---|---|---|
| HTTP | http |
只看HTTP流量 |
| DNS | dns |
只看DNS查询 |
| TCP SYN | tcp.flags.syn == 1 and tcp.flags.ack == 0 |
只看TCP握手的第一步 |
| 我的IP | ip.addr == 192.168.1.100 |
只看跟本机相关的流量 |
3.3.4 协议解析器设置
Wireshark 默认会尝试解析所有协议。但有些情况下,它会误判。比如,某些自定义协议跑在 80 端口上,Wireshark 会当成 HTTP 来解析,导致你看不懂。
路径:Edit → Preferences → Protocols。找到对应的协议,可以禁用或调整端口映射。
我曾经遇到过一个项目,某设备用 502 端口跑私有协议,Wireshark 一直当成 Modbus 解析,数据全是乱码。后来我把 Modbus 的默认端口从 502 改掉,才看到真正的数据。
3.4 本章小结
这一章我们走完了 Wireshark 的安装、界面认知和首选项调优。安装时别忘了 Npcap 的兼容模式;界面记住三大区域和过滤栏;首选项里时间格式、缓冲区大小和过滤按钮是提升效率的关键。