wireshark 安装
一、Ubuntu 系统 Wireshark 完整安装
环境适配
适配:Ubuntu 18.04 / 20.04 / 22.04 / 24.04 全系版本
一、安装前置依赖
用于支持添加 PPA 软件源
sudo apt update
sudo apt install software-properties-common -y
二、启用 Universe 官方仓库(必做)
Wireshark 依赖必须开启该仓库
sudo add-apt-repository universe
sudo apt update
三、添加 Wireshark 官方稳定版 PPA
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt update
四、安装 Wireshark
sudo apt install wireshark -y
五、抓包权限配置(二选一,推荐记两种)
方案1:永久配置普通用户抓包权限
- 重新配置 Wireshark 权限选项
sudo dpkg-reconfigure wireshark-common
弹窗选择:Yes 允许普通用户抓包
- 将当前用户加入 wireshark 用户组
把kipley换成自己用户名,直接执行:
sudo gpasswd -a kipley wireshark
生效方式
必须 桌面注销(Log Out) → 重新登录,或直接重启电脑验证是否加入组
groups
输出中出现 wireshark 即为配置成功
方案2:临时免配置、直接可用(实验首选)
永久权限配置失效时,直接用管理员身份启动,无视权限报错,可直接抓包做实验:
sudo wireshark
六、Wireshark 三种启动方式
- 终端普通启动
wireshark
(未配置权限会弹窗提示无抓包权限)
- 终端管理员启动(推荐做实验用)
sudo wireshark
无权限弹窗,直接抓包,不影响实验
- 图形菜单启动
Ubuntu 应用列表搜索Wireshark点击打开
七、版本验证
查看安装的 Wireshark 版本
wireshark --version
八、权限弹窗说明
弹窗内容:
You don't have permission to capture on local interfaces.
含义:当前普通用户无网卡抓包权限
- 若只是弹窗,但能选网卡、能开始抓包 → 不影响实验
- 若网卡灰色、无法抓包 → 用
sudo wireshark启动即可解决
九、卸载命令(备用笔记)
sudo apt remove wireshark -y
sudo add-apt-repository --remove ppa:wireshark-dev/stable
二、windows安装
正常流程安装即可。
实验操作
一、选择Capture 区域
- 用网线上网 → 选
eth0/ens33/ensXX(名字带eth/ens) - 用Wi‑Fi上网 → 选
wlan0/wlp2s0(名字带wlan/wlp)
不需要选的接口(实验用不到)
lo(回环网卡,本地自己跟自己通信)any(抓所有网卡,包太乱,新手别用)docker0/vbox等虚拟网卡(和实验无关)
二、开始抓包
| 列名 | 含义 | 作用说明 | 你的截图例子 |
|---|---|---|---|
| No. | 包序号 | 抓包过程中数据包的唯一递增编号,方便定位、引用某个包(比如 “大家看第 54 号包”) | 截图里的 54、78、79,就是包的序号,代表这是抓包过程中第 N 个被捕获的包 |
| Time | 时间戳 | 包被抓到的相对时间(默认是 “从抓包开始到现在的秒数”,也可改为绝对时间),用于分析包的时间间隔、延迟 | 第 54 号包的 0.699925100,表示 “抓包开始后 0.699 秒,捕获了这个包” |
| Source | 源地址 | 数据包的发送方地址(可以是 IP 地址、MAC 地址、设备名) | 第 54 号包的 175.153.178.3 是公网服务器 IP;第 78 号 ARP 包的 ASUSTekCOMPU_6e:5c:... 是设备的 MAC 地址 |
| Destination | 目的地址 | 数据包的接收方地址,即包要发给谁 | 第 54 号包的 192.168.51.106 是你的电脑内网 IP;第 78 号 ARP 包的 Broadcast 是 “广播地址”,表示包发给局域网所有设备 |
| Protocol | 协议类型 | 数据包使用的网络协议(如 TCP、UDP、ARP、TLS、HTTP 等),是实验分析的核心 | 截图里的 TCP、TLSv1.2、ARP,分别对应 TCP 传输协议、HTTPS 用的 TLS 加密协议、ARP 地址解析协议 |
| Length | 包长度 | 数据包的总字节数(包含链路层到应用层的所有数据) | 第 54 号包的 1514,表示这个 TCP 包总长度为 1514 字节 |
| Info | 包详情摘要 | 数据包的核心信息摘要,用于快速判断包的作用(如 TCP 连接确认、ARP 查询等) | 第 54 号包的 [TCP Previous segment not captured] 说明 TCP 分段数据不完整;第 78 号 ARP 包的 Who has 169.254.169.254? Tell 192.168.51.254 表示 ARP 在查询 IP 对应的 MAC 地址 |
| <img src=”/obsidian/notes/我的笔记/随笔/2026年度/2026 5月/icon/pic/Pasted image 20260511170952.png | 500” alt=”Pasted image 20260511170952” style=”max-width: 100%;”> |
三、举个例子
1. TLSv1.2 是什么?
- 全称:Transport Layer Security(传输层安全)
- 作用:给网络传输加密 + 防篡改 + 验身份
- 场景:我们访问的
https://网站,全部跑在 TLS 之上
2. Info = Application Data 代表什么?
TLS 通信分两阶段,这个包属于第二阶段:
- 握手阶段(Client Hello、Certificate 等):商量加密方式、交换密钥
- 应用数据阶段(Application Data):加密传真实内容(网页文字、图片、接口数据)
→ 这个包就是:服务器 → 你的电脑,发加密后的网页 / 应用数据
windows查看IP,cmd当中:
ipconfig
linux查看IP,终端当中:
ifconfig
122.248.50.148(服务器) → 192.168.51.106(你的电脑)
双击,查看具体的数据包分析:
1、最顶部:Frame 层(数据包整体信息栏)
Frame 9436: Packet, 185 bytes on wire (1480 bits), 185 bytes captured (1480 bits) on interface wlp0s20f3, id 0
| 字段 | 含义 | 实验意义 |
|---|---|---|
Frame 9436 |
包的序号,和抓包列表里的 No.9436 一一对应 |
方便在抓包列表里定位、引用这个包 |
185 bytes on wire |
数据包在网络上传输时的总长度(和你之前看到的 Length=185 一致) |
确认包的大小,判断是否是分段 / 重组的包 |
185 bytes captured |
Wireshark 实际捕获到的字节数 | 这里和传输长度一致,说明包被完整捕获,没有丢包或截断 |
on interface wlp0s20f3 |
捕获这个包的网卡(你的 Wi-Fi 网卡) | 确认抓包接口是否正确,排除 “选错网卡导致抓不到包” 的问题 |
2、第二层:Ethernet II(数据链路层 / 以太网层)
Ethernet II, Src: ASUSTekCOMPU_73:4b:50 (58:11:22:73:4b:50), Dst: Intel_74:07:39 (2c:8d:b1:74:07:39)
对应 OSI 模型的数据链路层,负责在同一个局域网内,通过 MAC 地址完成「设备到设备」的寻址和传输。
| 字段 | 含义 | 实验意义 |
|---|---|---|
Src: ASUSTekCOMPU_73:4b:50 |
源 MAC 地址(发送这个包的设备的物理网卡地址,这里是你的网关 / 路由器的 MAC) | 确认数据包在局域网内的「上一跳设备」,理解 MAC 地址的局域网寻址作用 |
Dst: Intel_74:07:39 |
目的 MAC 地址(接收这个包的设备的物理网卡地址,也就是你的电脑 Wi-Fi 网卡的 MAC) | 验证包是否正确发送到你的电脑网卡 |
3、第三层:Internet Protocol Version 4(网络层 / IP 层)
| 字段 | 含义 | 实验意义 |
|---|---|---|
Src: 122.248.50.148 |
源 IP 地址(公网服务器的 IP,也就是这个包的发送方) | 确认数据包的来源,判断通信的服务器是谁 |
Dst: 192.168.51.106 |
目的 IP 地址(你的电脑的内网 IP,也就是这个包的接收方) | 确认数据包的去向,验证包是发给你的电脑的 |
4、第四层:Transmission Control Protocol(传输层 / TCP 层)
| 字段 | 含义 | 实验意义 |
|---|---|---|
Src Port: 7826 |
源端口号(服务器上发送数据的应用端口) | 标识服务器上的服务,HTTPS 的默认端口是 443,这里是服务器的动态 / 非标准端口 |
Dst Port: 47468 |
目的端口号(你的电脑上接收数据的临时端口) | 由系统随机分配,对应你打开的浏览器 / 应用,理解「端口复用」机制 |
Seq: 1049 |
TCP 序列号(标识当前发送的数据段的序号) | 用于保证数据按序到达,是 TCP 可靠传输的核心机制之一 |
Ack: 1234 |
TCP 确认号(确认收到了对方的哪些数据) | 实现数据的可靠确认,避免丢包或重复接收 |
Len: 131 |
TCP 层数据的长度(包括 TCP 头和数据) | 计算应用层数据的实际大小 |
5、第五层:Transport Layer Security(安全层 / TLS 层)
对应 OSI 模型的应用层(安全层),是 HTTPS 的核心协议,负责给传输的数据提供加密、身份验证和防篡改保护。
Encrypted Application Data
- 含义:加密后的应用数据,截图里的
72cc57c0f9919c972...就是它的十六进制表示 - 实验意义:Wireshark 没有 TLS 会话的对称密钥,所以无法解密,只能看到加密后的乱码。这就是 HTTPS 的核心安全机制 —— 就算别人抓到包,也看不到里面的真实内容(比如网页文字、表单数据)。
四、数据筛选
| 过滤器类型 | 使用时机 | 作用 | 语法特点 | 本次场景是否用 |
|---|---|---|---|---|
| 捕获过滤器(Capture Filter) | 抓包前设置 | 直接丢弃不符合条件的包,只抓你要的包 | BPF 语法,功能有限(只能按端口 / IP / 协议过滤) | 本次是已经抓完包,不用 |
| 显示过滤器(Display Filter) | 抓包后设置 | 不影响原始抓包,只是在列表中隐藏不符合条件的包 | 语法丰富,支持按协议、字段、正则等筛选 | ✅ 本次核心使用! |
显示过滤器的使用方法
- 顶部输入框:写过滤器表达式,按
Enter生效 - 语法校验:输入框绿色 = 语法正确;红色 = 语法错误,需要修改
- 小技巧:输入框下拉箭头可查看历史过滤器,支持自动补全(输入
tls.会弹出所有 TLS 相关字段)
比较运算符(最常用)
| 运算符 | 含义 | 例子 | 场景说明 |
|---|---|---|---|
== |
等于 | ip.src == 192.168.51.106 |
筛选源 IP是自己电脑的包 |
!= |
不等于 | tcp.port != 443 |
排除 443 端口的包 |
contains |
字符串包含 | tls.host contains "bilibili.com" |
筛选 SNI 主机名包含 B 站域名的包(核心!) |
matches |
正则匹配 | tls.host matches ".*\.bilivideo\.com$" |
匹配所有 B 站媒体 CDN 子域名 |
> / < |
大于 / 小于 | frame.len > 1000 |
筛选长度超过 1000 字节的大包(音频流常用) |
| 逻辑运算符(组合多个条件) |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com