第1章 Wireshark初识:从零开始认识这个抓包神器

大家好,我是老张。干了十几年网络运维,Wireshark 是我每天都要用的工具。今天咱们就从零开始,聊聊它到底是什么、能干什么、怎么装、怎么上手。

说实话,我第一次接触 Wireshark 是在一个深夜。当时一个客户的业务突然卡死,所有日志都正常,就是找不到原因。我抱着试试看的心态打开了 Wireshark,抓了 30 秒的包……嗯,问题一下就暴露了——一个 TCP 重传风暴。从那以后,我就再也没离开过它。

1.1 Wireshark是什么?

Wireshark 是一个网络封包分析工具。说白了,它能把你电脑网卡上流过的所有数据都“拍下来”,然后一条条展示给你看。

你想想看,网络通信就像两个人打电话。你听到的是声音,但电话线上跑的是电信号。Wireshark 就是那个能“监听”电信号,并把它翻译成你能理解的语言的工具。

核心概念:Wireshark 工作在数据链路层以上,能捕获并解析以太网帧、IP包、TCP/UDP段,一直到应用层协议(HTTP、DNS、FTP等)。

它支持超过 2000 种协议。从常见的 HTTP、HTTPS、DNS,到冷门的工业协议 Modbus、CAN bus,它都能解析。我个人习惯把它叫做“网络界的万能翻译机”。

1.2 Wireshark能做什么?

我把它能做的事归纳成四大类。你看完就知道为什么每个网络工程师都得会它。

能力分类 具体场景 我遇到过的真实案例
故障排查 网页打不开、视频卡顿、丢包、延迟高 某电商大促时,用户下单超时。抓包发现是 DNS 解析到了旧 IP
协议分析 学习 TCP 三次握手、HTTP 请求流程 面试新人时,我直接让他抓包解释 TLS 握手过程
安全分析 检测 ARP 欺骗、DNS 劫持、恶意流量 有次公司内网慢,抓包发现一台电脑在疯狂发 ARP 广播
性能优化 分析响应时间瓶颈、TCP 窗口大小 帮一个游戏公司优化登录流程,抓包发现 SSL 握手耗时 3 秒

我的建议:初学者别急着学过滤语法。先抓几个包,看看“正常流量”长什么样。等你见过足够多的正常包,异常出现时你一眼就能认出来。

1.3 Wireshark的下载与安装

下载很简单,但有几个坑我得提前告诉你。

下载地址

直接去官网:https://www.wireshark.org/download.html。别去第三方网站下,我见过有人下到带木马的版本。

安装步骤(Windows为例)

  1. 双击安装包,一路 Next
  2. 到选择组件时,确保勾选“Npcap”或“WinPcap”——这是抓包的底层驱动
  3. 安装 Npcap 时,勾选“WinPcap API-compatible Mode”
  4. 完成安装,重启电脑(有时不需要,但我建议重启)

避坑指南:我曾经遇到过安装后抓不到包的情况。折腾了半天,发现是 Npcap 没装好。记住:Wireshark 本身只是个“壳”,真正干活的是 Npcap。如果抓不到包,先检查 Npcap 是否正常安装。

macOS / Linux 安装

系统 安装命令 备注
macOS brew install --cask wireshark 需要先安装 Homebrew
Ubuntu/Debian sudo apt install wireshark 安装时会询问是否允许非 root 用户抓包,选“是”
CentOS/RHEL sudo yum install wireshark 可能需要先启用 EPEL 源

1.4 Wireshark界面初探

装好之后,咱们打开看看。别被密密麻麻的界面吓到,其实就几个核心区域。

下面这张图是我手绘的界面结构,你对照着看,心里就有数了。

Wireshark 主界面结构图 Wireshark 主界面结构 菜单栏 / 工具栏 显示过滤栏(Filter Bar) 包列表区(Packet List) 编号 | 时间 | 源地址 | 目的地址 | 协议 | 长度 | 信息 1 0.000 192.168.1.1 192.168.1.2 TCP 66 SYN 2 0.001 192.168.1.2 192.168.1.1 TCP 66 SYN-ACK 包详情区(Packet Details) Frame: 物理层信息 Ethernet II: 源MAC / 目的MAC Internet Protocol: 源IP / 目的IP 字节区(Packet Bytes) 0000 00 1a 2b 3c 4d 5e 00 1a 2b 3c 4d 5f 08 00 45 00 从上到下依次是:菜单 → 过滤 → 包列表 → 包详情 → 字节区

界面分五个区域,我一个个说。

1. 菜单栏 / 工具栏

最上面一排。文件、编辑、视图、捕获、分析……这些菜单。工具栏里有个绿色鲨鱼鳍图标,那是“开始捕获”按钮。红色方块是“停止”。

2. 显示过滤栏

这是你以后最常用的地方。输入过滤表达式,比如 http、tcp.port==80,就能只显示你关心的包。

小技巧:过滤栏的背景色会变。绿色表示语法正确,红色表示写错了。我第一次学的时候,经常看到红色……别急,多练几次就好了。

3. 包列表区

抓到的所有包都在这里。一行一个包。列信息包括:编号、时间、源地址、目的地址、协议、长度、信息概要。

你点击任意一行,下面两个区域就会跟着变。

4. 包详情区

这是最核心的区域。它把网络包一层层拆开给你看:

  • Frame:物理层信息,比如帧大小、时间戳
  • Ethernet II:数据链路层,源MAC、目的MAC
  • Internet Protocol:网络层,源IP、目的IP、TTL
  • TCP/UDP:传输层,源端口、目的端口、序列号
  • 应用层协议:比如 HTTP 的请求行、响应码

5. 字节区

最下面那块。显示的是原始二进制数据,左边是十六进制,右边是对应的 ASCII 字符。说实话,日常排查问题很少看这里。但做底层协议分析时,它很有用。

我的经验:初学者先盯住“包列表区”和“包详情区”就够了。字节区可以先忽略。等你把 TCP 三次握手、HTTP 请求流程看熟了,再回头研究字节区不迟。