Wireshark 是一款免费、开源的网络抓包分析工具,通俗点说,就是能“看见”电脑网络上每一份数据包的软件。
你访问网页、聊微信、看视频时,数据都要先拆成一个个小包在网络上传输,Wireshark 可以把这些包全部截下来,还能解析出里面装的是什么协议、什么内容,网络慢、连不上、软件报错这类问题,用它一抓就能看出原因。
Wireshark版本介绍
Wireshark 的版本分三条线,官网同时提供,写作时最新的分别是稳定版 4.6.8、旧稳定版 4.4.18、开发版 4.7.2。
| 版本线 | 最新版本 | 定位 | 选择建议 |
| 稳定版(Stable) | 4.6.8 | 功能完整、经过充分测试 | 绝大多数用户选这个 |
| 旧稳定版(Old Stable) | 4.4.18 | 上一代稳定版,继续维护 | 老系统或特殊兼容需求时用 |
| 开发版(Development) | 4.7.2 | 抢先体验最新功能 | 喜欢尝鲜的开发者 |
Wireshark下载
Wireshark安装包:Wireshark中文版(源自官网,放心使用)
Wireshark安装
Wireshark 支持三大平台,下面以稳定版为例详细演示。
1)Windows安装
双击安装包启动安装程序。如果系统弹出安全风险提示,点击"运行"。安装向导显示欢迎界面,点击"Next"继续。
许可协议页面,直接点击"Noted":
直接点击“Next”:
选择安装组件。默认会安装 Wireshark 核心程序、TShark(命令行版)等,保持默认勾选即可。
建议勾选“Wireshark Deskop Icon”创建桌面快捷方式:
选择安装路径。默认在 C:\Program Files\Wireshark,我建议改到 D 盘,比如 D:\Wireshark,减少系统盘占用。
安装 Npcap 组件,这是安装过程中最重要的一步。NPcap 是一个网络数据包抓包工具软件,是 WinPcap 的改进版,拥有更好的抓包性能,并且稳定性优异。Wireshark 需要 Npcap 来捕获网络数据包:
安装 USBPcap,想抓取 USB 通信数据的可以勾选上,点击 Install:
安装过程中,会启动 Npcap 的安装程序:
保持默认,点击 Install:
Npcap 安装完成后回到 Wireshark 安装程序,等待安装完成,点击"Finish"结束安装:
2)Linux安装
Linux 建议直接用发行版自带的软件源安装,Ubuntu/Debian 执行 sudo apt install wireshark,Fedora 执行 sudo dnf install wireshark。安装过程中会询问是否允许非管理员抓包,选“是”即可。
3)macOS安装
双击打开 dmg 镜像后,把 Wireshark 图标拖进 Applications 文件夹即可。
汉化Wireshark
Wireshark 官方安装包本身就自带简体中文语言包,如果界面显示英文,手动切换一下即可。
打开 Wireshark,点击菜单栏的 Edit(编辑)→ Preferences(首选项):
在左侧列表选择 Appearance(外观),把语言选项改为 Chinese 简体中文,点击 OK 或者 Apply ,整个界面就变成中文了:
切换语言后,菜单、右键菜单、过滤器提示等都会同步变成中文,使用起来方便很多。
Wireshark基础使用
Wireshark 的功能很强大,但新手掌握下面几步就能开始实战了。
1)选择网卡开始抓包
打开 Wireshark,首页会列出电脑上所有的网卡接口,每个网卡旁边还有实时跳动的波形图,哪个有波动说明哪个在传数据。双击正在联网的网卡(一般是有线网卡或 Wi-Fi 网卡),抓包就开始了。
顶部工具栏的鲨鱼鳍图标也是开始抓包的入口,红色的方块图标则是停止抓包。抓包过程中数据包列表会不断刷新,停止后就可以对抓到的数据进行分析。
2)认识主界面
停止抓包后,界面分成三个区域:
- 最上方是数据包列表,每一行代表一个数据包,显示编号、时间、源地址、目的地址、协议和基本信息;
- 左下方是数据包详情,点列表里任意一个包,这里会分层显示它的协议结构(以太网、IP、TCP/UDP、应用层);
- 右下方是数据包原始字节,显示数据包对应的十六进制内容和 ASCII 字符。
日常分析主要看前两个区域。
3)使用显示过滤器
抓包数据量大,全靠显示过滤器来筛。过滤器框在工具栏下方,输入语法后按回车生效:
下面几个是最常用的过滤条件:
| 过滤器语法 | 作用 |
| ip.addr == 192.168.1.1 | 只看这个 IP 地址相关的所有包 |
| ip.src == 192.168.1.1 | 只看从这个 IP 发出去的包 |
| ip.dst == 192.168.1.1 | 只看发给这个 IP 的包 |
| tcp.port == 443 | 只看 443 端口(HTTPS)的包 |
| http | 只看 HTTP 协议的包 |
| dns | 只看 DNS 域名解析的包 |
| icmp | 只看 ping 的 ICMP 包 |
| tcp.port == 80 || udp.port == 53 | 两个条件满足其一(或者) |
| http && ip.src == 192.168.1.1 | 两个条件同时满足(并且) |
| !arp | 排除 ARP 协议(感叹号表示取反) |
4)追踪TCP流
HTTP 请求和响应可能被拆成很多个数据包,一个个看太麻烦。在任意一个 HTTP 包上点右键,选择“追踪流→TCP 流”,Wireshark 会把这次完整对话重新拼起来,用红蓝两种颜色分别显示客户端和服务器的内容,网页请求发了什么、服务器回了什么都一目了然。
5)查看统计信息
点击菜单栏的"统计",可以打开"协议分级"、"会话"、"端点"等统计视图:
- "协议分级"会列出各种协议占用的流量比例,帮你快速判断流量主要花在哪类协议上;
- "会话"和"端点"则能看出本机都和哪些 IP 有过通信、通信量多大,对排查异常联网很有帮助。
6)其它实用功能
① 抓包分析完成后,按 Ctrl+S 可以把数据保存为 .pcapng 文件,方便之后继续分析或发给别人协助排查。按 Ctrl+O 可以打开之前保存的抓包文件,重新查看当时的网络情况,这一点在处理历史问题时非常实用。
② 当抓包数据量很大时,按 Ctrl+F 打开查找窗口,可以按字符串、十六进制值或正则表达式在数据包内容里搜索关键词,比如直接搜索某个网址或某段报错文字,快速定位到对应的数据包,比手动翻找高效得多。
Wireshark新手注意事项
1)Npcap 不要随意卸载。它是 Wireshark 抓包的底层驱动,卸载后 Wireshark 就抓不到包了
2)不抓包时记得停止,文件会很大。抓包文件每秒可能增长几 MB 到几十 MB,抓一会儿就点红色方块停止,再用过滤器筛选,避免磁盘被占满。
3)Wireshark 只能抓经过自己网卡的数据包。普通环境下,你只能看到自己电脑的流量,抓不到别人电脑的包,连接 Wi-Fi 时也只能抓到自己设备的流量,这些是网络本身的工作原理,不是软件的问题。