用户可通过该项目捕获和分析网络流量,支持多平台,提供图形化界面与命令行工具,能读取多种文件格式并支持压缩文件随机访问,助力网络问题诊断与分析。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 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
特殊设备支持说明:
-
AIX iptrace:
- 需手动终止 iptrace 守护进程(发送 HUP 信号可确保文件完整性)
- 若文件末尾存在残缺数据包,Wireshark 将报错但可正常读取其他数据
- 如遇此问题,请邮件联系 wireshark-dev@wireshark.org(附送不含敏感信息的小型抓包文件)
-
Lucent/Ascend 设备: 支持 MAX/Pipeline 系列的调试输出(wandsession/wandisplay/wannext/wdd 命令)
-
东芝紧凑型路由器(TR-600/TR-650): 通过 telnet 执行
snoop dump启动抓包 -
CoSine L2 调试输出:
- 进入诊断模式后使用
layer-2类目下的命令:create-pkt-log-profile apply-pkt-log-profile - 具体参数可通过
layer-2 create ?或layer-2 apply ?查看帮助
- 进入诊断模式后使用
抓包技巧:
- 对于路由器内置抓包(Lucent/Ascend/东芝/CoSine),需手动保存终端输出
- Unix 系统推荐方式:
或使用 script 命令记录完整会话:telnet <设备IP> | tee 输出文件.logscript 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)的名称解析
您可通过以下步骤将此设置为默认配置:
- 通过编辑菜单中的"首选项"项打开对话框
- 选择"名称解析"选项
- 关闭相应的名称解析功能
- 点击"确定"保存设置
SNMP协议解析
Wireshark支持对SNMP数据包进行基础解码,还可通过libsmi库实现更高级的解析:
- 通过读取MIB文件,以更友好的方式显示OID和变量绑定值
- CMake会自动检测系统中是否安装libsmi库
- 若已安装libsmi但_不希望_Wireshark使用该库,可在运行cmake时添加
-DENABLE_SMI=OFF参数
问题反馈指南
Wireshark持续迭代开发中,使用过程中可能遇到问题。请通过以下渠道提交问题报告: https://gitlab.com/wireshark/wireshark/-/issues
提交报告时请务必包含:
- 完整版本信息(通过"帮助"菜单的"关于Wireshark"或命令
wireshark -v/tshark -v获取) - Linux系统下出现的问题需注明具体发行版及版本号
- 触发问题的操作步骤(包括命令行调用方式)
若问题与特定抓包文件相关:
- 请附上能重现问题的抓包文件
- 文件若含敏感信息(如密码)请勿提交
程序崩溃诊断: 当出现"段错误"、"总线错误"或生成UNIX核心转储文件时,若已安装调试器可执行以下操作协助开发:
- 使用调试器(如gdb)加载wireshark可执行文件和核心转储
- 执行'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