Wireshark (简体中文)
Jump to navigation
Jump to search
Wireshark 是一款免费开源的包分析器。可用于网络排错、网络分析、软件和通讯协议开发以及教学等。Wireshark 原名 Ethereal,2006年五月该项目因商标纠纷而改名。
Contents
安装
wireshark 软件包分成了 CLI 版本和依赖 CLI 版本的 GTK,Qt 前端界面.
- CLI 版本 - 安装 软件包 wireshark-cli.
- GTK 前端 - 安装 软件包 wireshark-gtk[broken link: replaced by wireshark-qt].
- Qt 前端 - 安装 软件包 wireshark-qt.
以普通用户身份抓包
以 root 身份运行 Wireshark 是不安全的。Arch Linux 使用
Wireshark wiki 提供的方法分离权限。wireshark-cli 的 安装脚本 会设置 /usr/bin/dumpcap
capabilities.
$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
/usr/bin/dumpcap
是唯一有权限进行数据包抓取的进程,仅能被 root 或 wireshark
群组用户执行。有两种方式可以让普通用户能够抓包: :
将用户加入 wireshark 组
将用户加入 wireshark 群组:
# gpasswd -a username wireshark
可以用下面命令不重新登录就可以执行 wireshark:
$ newgrp wireshark
使用 sudo
可以用 sudo 临时将群组切换为wireshark
. 下面 sudo 设置允许所有 wheel 群组中的用户用 wireshark GID:
group to run programs with GID set to wireshark GID:
%wheel ALL=(:wireshark) /usr/bin/wireshark, /usr/bin/tshark
启动 wireshark:
$ sudo -g wireshark wireshark
一些抓包技巧
用一些过滤参数可以抓到你想要的包,过滤器语法请参考 man pcap-filter(7).
过滤 TCP 包
只想看到 TCP 数据包,在 "Filter" 拦输入 tcp
。
过滤 UDP 包
只想看到 UDP 数据包,在 "Filter" 拦输入 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
。