第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为例)
- 双击安装包,一路 Next
- 到选择组件时,确保勾选“Npcap”或“WinPcap”——这是抓包的底层驱动
- 安装 Npcap 时,勾选“WinPcap API-compatible Mode”
- 完成安装,重启电脑(有时不需要,但我建议重启)
避坑指南:我曾经遇到过安装后抓不到包的情况。折腾了半天,发现是 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界面初探
装好之后,咱们打开看看。别被密密麻麻的界面吓到,其实就几个核心区域。
下面这张图是我手绘的界面结构,你对照着看,心里就有数了。
界面分五个区域,我一个个说。
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 请求流程看熟了,再回头研究字节区不迟。