Wireshark (简体中文)

From ArchWiki
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翻译。上次翻译日期:2020-11-28。如果英文版本有所更改,则您可以帮助同步翻译。

Wireshark 是一款自由且开源的包分析器。可用于网络排错、网络分析、软件和通讯协议开发以及教学等。

安装

Wireshark 软件包分成了 CLI 版本和依赖 CLI 版本的前端界面.

注意: 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 filtersdisplay 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