# Wireshark (简体中文)

翻译状态： 本文是英文页面 Wireshark 的翻译，最后翻译时间：2016-06-14，点击这里可以查看翻译后英文页面的改动。

Wireshark 是一款免费开源的包分析器。可用于网络排错、网络分析、软件和通讯协议开发以及教学等。Wireshark 原名 Ethereal，2006年五月该项目因商标纠纷而改名。

## 安装

wireshark 软件包分成了 CLI 版本和依赖 CLI 版本的 GTK，Qt 前端界面.

- CLI 版本 - 安装 软件包 wireshark-cli.
- GTK 前端 - 安装 软件包 wireshark-gtk.
- 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`。

Categories:

- 简体中文
- Security (简体中文)
- Networking (简体中文)