wireshark:基于 Qt 与 libpcap/npcap 的网络流量分析工具项目

用户可通过该项目捕获和分析网络流量,支持多平台,提供图形化界面与命令行工具,能读取多种文件格式并支持压缩文件随机访问,助力网络问题诊断与分析。【此简介由AI生成】

分支1Tags3
文件最后提交记录最后更新时间
2 年前
2 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
2 年前
1 年前
2 年前
1 年前
1 年前
2 年前
1 年前
3 年前
1 年前
2 年前
1 年前
2 年前
1 年前
1 年前
1 年前
2 年前
1 年前
1 年前
2 年前
1 年前
3 年前
2 年前
1 年前
2 年前
2 年前
2 年前
2 年前
1 年前
1 年前
1 年前
1 年前
2 年前
1 年前
2 年前
2 年前
2 年前
1 年前
1 年前
2 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
2 年前
1 年前
2 年前
3 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
2 年前
1 年前
1 年前
3 年前
3 年前
3 年前
3 年前

通用信息

Wireshark 是一款适用于 Linux、macOS、*BSD 及其他类 Unix 操作系统和 Windows 平台的网络流量分析工具(俗称"嗅探器")。它采用 Qt 图形用户界面库,并依赖 libpcap 和 npcap 作为数据包捕获与过滤的基础库。

该发行版同时包含:

  • TShark:命令行嗅探工具(功能类似 Sun 的 snoop 或 tcpdump),复用 Wireshark 的协议解析引擎、抓包文件读写模块及数据包过滤代码
  • editcap:抓包文件转换工具,支持格式转换与数据包筛选

官方网站:https://www.wireshark.org
最新版本下载路径:https://www.wireshark.org/download

安装指南

Wireshark 项目定期在以下平台进行构建与测试:

  • Linux(Ubuntu)
  • Microsoft Windows
  • macOS / Mac OS X

官方提供 Windows 和 macOS 的预编译安装包。多数主流操作系统及 Linux 发行版(包括 Debian、Ubuntu、Fedora、CentOS、RHEL、Arch、Gentoo、openSUSE、FreeBSD、DragonFly BSD、NetBSD 和 OpenBSD)可通过标准或附加软件源获取。

还支持通过第三方包管理系统安装,如 pkgsrc、OpenCSW、Homebrew 和 MacPorts。其他类 Unix 系统通常也可顺利运行。

注意:

  • Windows XP 仅支持 Wireshark 1.10 及更早版本
  • Solaris 和 HP-UX 的官方包可能版本较旧

编译要求:

  • 必须:Python 3
  • 文档构建:AsciiDoctor
  • 源码生成:Perl 和 flex(需 GNU flex,标准 lex 不可用)

完整安装说明详见 INSTALL 文件及《开发者指南》:https://www.wireshark.org/docs/wsdg_html_chunked/
各操作系统专属指南请查阅对应的 README.OS 文件。

使用说明

网络抓包需满足以下条件之一:

  • 将 dumpcap 程序设为 root 权限(set-UID)
  • 访问 /dev 下特定设备节点(适用于 BSD 衍生系统及支持 DLPI 的系统如 Solaris/HP-UX)

安全提示: 请勿将 Wireshark 或 TShark 设为 setuid root,也避免直接以 root 运行。dumpcap 作为独立抓包模块,代码更精简,安全风险更低。

命令行参数及界面功能详见手册页。

多文件格式支持

Wireshark 支持读取多种抓包文件格式(完整列表见用户手册)。若编译时启用了对应压缩库,还可自动解压以下格式:

  • GZIP
  • LZ4
  • ZSTD

(GZIP 和采用独立块的 LZ4 支持快速随机访问,大幅提升大文件操作效率)

编译时可通过以下选项禁用特定压缩格式:

cmake -DENABLE_ZLIB=OFF
cmake -DENABLE_LZ4=OFF  
cmake -DENABLE_ZSTD=OFF

特殊设备支持说明:

  1. AIX iptrace

    • 需手动终止 iptrace 守护进程(发送 HUP 信号可确保文件完整性)
    • 若文件末尾存在残缺数据包,Wireshark 将报错但可正常读取其他数据
    • 如遇此问题,请邮件联系 wireshark-dev@wireshark.org(附送不含敏感信息的小型抓包文件)
  2. Lucent/Ascend 设备: 支持 MAX/Pipeline 系列的调试输出(wandsession/wandisplay/wannext/wdd 命令)

  3. 东芝紧凑型路由器(TR-600/TR-650): 通过 telnet 执行 snoop dump 启动抓包

  4. CoSine L2 调试输出

    • 进入诊断模式后使用 layer-2 类目下的命令:
      create-pkt-log-profile
      apply-pkt-log-profile
      
    • 具体参数可通过 layer-2 create ?layer-2 apply ? 查看帮助

抓包技巧:

  • 对于路由器内置抓包(Lucent/Ascend/东芝/CoSine),需手动保存终端输出
  • Unix 系统推荐方式:
    telnet <设备IP> | tee 输出文件.log
    
    或使用 script 命令记录完整会话:
    script tracefile.out
    telnet <设备IP>
    exit
    
$ script tracefile.out
Script started on <date/time>
$ telnet router
..... do your trace, then exit from the router's telnet session.
$ exit
Script done on <date/time>

名称解析

Wireshark在解码IPv4和IPv6数据包时,会尝试使用反向名称解析功能。

若需在使用Wireshark时关闭名称解析功能,可通过以下方式启动程序:

  • 使用-n选项禁用所有名称解析(包括MAC地址及TCP/UDP/SMTP端口号到名称的转换)
  • 使用-N mt选项仅禁用网络层地址(IPv4、IPv6、IPX)的名称解析

您可通过以下步骤将此设置为默认配置:

  1. 通过编辑菜单中的"首选项"项打开对话框
  2. 选择"名称解析"选项
  3. 关闭相应的名称解析功能
  4. 点击"确定"保存设置

SNMP协议解析

Wireshark支持对SNMP数据包进行基础解码,还可通过libsmi库实现更高级的解析:

  • 通过读取MIB文件,以更友好的方式显示OID和变量绑定值
  • CMake会自动检测系统中是否安装libsmi库
  • 若已安装libsmi但_不希望_Wireshark使用该库,可在运行cmake时添加-DENABLE_SMI=OFF参数

问题反馈指南

Wireshark持续迭代开发中,使用过程中可能遇到问题。请通过以下渠道提交问题报告: https://gitlab.com/wireshark/wireshark/-/issues

提交报告时请务必包含:

  1. 完整版本信息(通过"帮助"菜单的"关于Wireshark"或命令wireshark -v/tshark -v获取)
  2. Linux系统下出现的问题需注明具体发行版及版本号
  3. 触发问题的操作步骤(包括命令行调用方式)

若问题与特定抓包文件相关:

  • 请附上能重现问题的抓包文件
  • 文件若含敏感信息(如密码)请勿提交

程序崩溃诊断: 当出现"段错误"、"总线错误"或生成UNIX核心转储文件时,若已安装调试器可执行以下操作协助开发:

  1. 使用调试器(如gdb)加载wireshark可执行文件和核心转储
  2. 执行'backtrace'命令获取堆栈跟踪信息

(注:保留所有技术术语如OID、MIB、CMake等不翻译,保持Markdown格式及代码样式)

$ gdb wireshark core
(gdb) backtrace
..... prints the stack trace
(gdb) quit
$

在某些平台上(例如BSD系统),核心转储文件可能被命名为"wireshark.core"而非"core"。若您获得的是TShark而非Wireshark的核心转储文件,调试时请将"tshark"作为首个参数传递给调试器;此类核心转储文件可能被命名为"tshark.core"。

许可协议

Wireshark依据GNU GPLv2协议发布。完整许可文本请参阅COPYING文件。如有疑问,以完整文本的法律效力为准。此处说明仅为方便不熟悉GPLv2协议的用户理解。

本软件使用无任何限制。但对其源代码或二进制形式的再分发存在约束条件。

Wireshark大部分组件采用"GPL第二版或更新版本"许可。部分文件采用与GPLv2兼容的其他许可协议。

需特别说明的是,随Wireshark源代码分发的某些工具程序采用与GPLv2不直接兼容的其他许可协议。这符合规范,因为仅工具本身采用特殊许可,其输出成果不被视为衍生作品,故可安全用于Wireshark。此类工具包括但不限于:

  • pidl工具(tools/pidl)采用GPLv3+许可

Wireshark部分组件可作为库文件编译和分发。这些组件仍受GPL协议约束,不适用LGPL或其他任何许可协议。

若您将Wireshark全部或部分整合至自有应用程序并选择公开发布,则整体作品必须遵循GPLv2条款进行发布。

免责声明

本产品不提供任何明示或默示的担保。使用风险由用户自行承担。

杰拉尔德·康布斯 gerald@wireshark.org

吉尔伯特·拉米雷斯 gram@alumni.rice.edu

盖伊·哈里斯 gharris@sonic.net

项目介绍

用户可通过该项目捕获和分析网络流量,支持多平台,提供图形化界面与命令行工具,能读取多种文件格式并支持压缩文件随机访问,助力网络问题诊断与分析。【此简介由AI生成】

定制我的领域