Wireshark (简体中文)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Wireshark 是一款自由且开源的包分析器。可用于网络排错、网络分析、软件和通讯协议开发以及教学等。
安装
Wireshark 软件包分成了 CLI 版本和依赖 CLI 版本的前端界面.
- CLI 版本 - 安装 软件包 wireshark-cli。
- Qt 前端 - 安装 软件包 wireshark-qt。
注意: Wireshark 3.0 已经移除了 GTK 界面
以普通用户身份抓包
以 root 身份运行 Wireshark 是不安全的。Wireshark 已经实现了权限分离,因此 Wireshark 的图形界面(或 tshark CLI)能够以普通用户身份运行,而数据包捕获工具使用 root 身份运行[1]。
wireshark-cli 的安装脚本会为 /usr/bin/dumpcap
设置数据包捕获能力。
/usr/bin/dumpcap
仅能被 root 用户或 wireshark
群组用户执行,因此需要将用户加入 wireshark
用户组以使普通用户能够正常运行 Wireshark (参见 Users and groups (简体中文)#用户组管理)。
一些抓包技巧
你可以通过使用 capture filters 和 display filters 准确获取你想抓取的数据包。
注意: capture filters 语法请参考 pcap-filter(7) ,display filters 语法参考 wireshark-filter(4)。
过滤 TCP 包
只查看所有的 TCP 数据包,在 "Filter" 拦输入 tcp
,或者在终端中输入:
$ tshark -f "tcp"
过滤 UDP 包
只想查看所有的 UDP 数据包,在 "Filter" 拦输入 udp
,或者在终端输入:
$ tshark -f "udp"
查看指定 IP 地址的数据包
将 1.2.3.4
替换为要查看的 IP 地址。
- 只想查看发到某个特定地址的数据包,输入
ip.dst == 1.2.3.4
。
- 只想查看从某个特定地址发出的数据包,输入
ip.src == 1.2.3.4
。
- 要查看某个特定地址的所有数据包,输入
ip.addr == 1.2.3.4
。
排除特定 IP 地址的数据包
将 1.2.3.4
替换为要排除的 IP 地址。
ip.addr != 1.2.3.4
查看局域网数据包
如果只想查看局域网数据包,使用
(ip.src==10.0.0/8 AND ip.dst==10.0.0/8) OR (ip.src==172.16.0.0/12 AND ip.dst==172.16.0.0/12) OR (ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16)
这样可以过滤出所有来自私有网络地址的数据包。
查看制定端口的数据包
查看某两个或更多端口的流量:
tcp.port==80||tcp.port==3306 tcp.port==80||tcp.port==3306||tcp.port==443