Wireshark是Linux,MacOS, *BSD以及其他UNIX和UNIX型操作系统以及Windows的网络流量分析仪或“ Sniffer”。它使用QT,图形用户界面库,LIBPCAP和NPCAP用作数据包捕获和过滤库。
Wireshark发行版还带有TSHARK,它是一种面向线的嗅探器(类似于Sun的Snoop或Tcpdump),它使用相同的解剖,捕获文件读取和写作,以及数据包过滤代码作为Wireshark,以及带有EditCap的,这是一个程序以读取捕获文件并从该捕获文件(可能具有不同的捕获文件格式)中写入数据包,并可能从捕获中删除一些数据包。
Wireshark的官方住所是https://www.wireshark.org。
最新的发行版可以在子目录中找到https://www.wireshark.org/download
Wireshark项目定期在以下平台上构建和测试:
官方安装软件包可用于Microsoft Windows和MacOS。
它可作为许多流行操作系统和Linux发行版的标准包或附加软件包,包括Debian,Ubuntu,Fedora,Centos,Rhel,Arch,Arch,Gentoo,Opensuse,Freebsd,Freebsd,Dragonfly BSD,NetBSD,NetBSD和OpenBSD。
此外,可以通过许多第三方包装系统(例如PKGSRC,Opencsw,Homebrew和MacPorts)获得。
它应该在其他Unix-ish系统上运行,而不会太多麻烦。
在某些情况下,当前版本的Wireshark可能不支持您的操作系统。 Windows XP就是这种情况,由Wireshark 1.10和更早的人支持。在其他情况下,Wireshark的标准软件包可能只是旧的。 Solaris和HP-UX就是这种情况。
需要python 3来构建Wireshark。构建文档(包括人页面)需要Asciidoctor。需要Perl和Flex来生成一些源代码。
因此,您必须在缺少它们的系统上安装Python 3,Asciidoctor和GNU“ Flex”(Vanilla“ Lex”不起作用)。您可能还需要安装Perl。
可以在安装文件和开发人员指南中找到完整的安装说明
另请参阅适当的读书我。用于特定于OS的安装说明的OS文件。
为了从网络中捕获数据包,您需要使dumpcap程序设置为root lot lo lot lo lot,或者如果您的系统如此倾斜,则需要访问适当的/dev
(BSD衍生的系统,以及诸如诸如支持DLPI的Solaris和HP-UX通常属于此类别)。尽管将Wireshark和TSHARK可执行文件固定在根本上可能很诱人,或者将其作为root运行,请不要。捕获过程已在DumpCap中隔离;这个简单的程序不太可能包含安全孔,因此更安全地作为根。
请咨询MAN页面以获取每个命令行选项和接口功能的描述。
Wireshark可以从许多不同的文件类型中读取数据包。有关支持的文件格式列表,请参见Wireshark Man页面或Wireshark用户指南。
如果在编译Wireshark时可用,Wireshark可以透明地读取任何这些文件的压缩版本。当前支持的压缩格式是:
GZIP和LZ4(使用独立块时,默认情况下)支持快速随机寻求,这在大型文件上提供了更好的GUI性能。这些压缩格式中的任何一个都可以在编译时间通过将相应的选项传递给CMAKE,即, cmake -DENABLE_ZLIB=OFF
, cmake -DENABLE_LZ4=OFF
或cmake -DENABLE_ZSTD=OFF
。
尽管Wireshark可以读取AIX IPTRACE文件,但AIX的IPTrace数据包跟踪命令上的文档很少。 iptrace
命令启动了一个守护程序,您必须杀死该守护程序才能停止跟踪。通过实验,向IPTrace守护程序发送HUP信号似乎会导致正式关闭,并将完整的数据包写入跟踪文件。如果最终保存了部分数据包,则Wireshark在读取该文件时会抱怨,但是您可以读取所有其他数据包。如果发生这种情况,请让Wireshark开发人员通过[email protected]知道;请确保如果该跟踪文件很小并包含非敏感数据,请确保向我们发送该跟踪文件的副本。
对Lucent/Ascend产品的支持仅限于最大和管道系列产品产生的调试跟踪输出。 Wireshark可以读取wandsession
, wandisplay
, wannext
和wdd
命令的输出。
Wireshark还可以从Toshiba“紧凑型路由器”线(TR-600和TR-650)的“紧凑型路由器”系列中读取转储跟踪输出。您可以触发路由器,并使用snoop dump
开始转储会话。
余弦L2调试输出也可以由Wireshark读取。要获取L2调试输出,首先输入DIAGS模式,然后使用create-pkt-log-profile
,并在第2层类别下apply-pkt-lozg-profile
命令。有关如何使用这些命令的更多详细信息,您应该通过layer-2 create ?
或layer-2 apply ?
。
要使用Wireshark的Lucent/Ascend,Toshiba和余弦痕迹,您必须将跟踪输出捕获到磁盘上的文件。路由器内部发生的跟踪发生,路由器无法为您保存跟踪。在UNIX下执行此操作的一种简单方法是运行telnet <ascend> | tee <outfile>
。或者,如果您的系统已安装了“脚本”命令,则可以将包括Telnet在内的Shell会话保存到文件中。例如,登录到名为TraceFile.out的文件:
$ 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>
在解码IPv4和IPv6数据包时,Wireshark将尝试使用反向名称分辨率。
如果要在使用Wireshark时关闭名称分辨率,请使用-n
选项启动Wireshark,以关闭所有名称分辨率(包括MAC地址的分辨率和TCP/UDP/SMTP端口号码到名称)或以-N mt
选项为单位关闭所有网络层地址的名称分辨率(IPv4,IPv6,IPX)。
您可以通过使用“编辑菜单”中的首选项项目打开“姓名分辨率”,关闭适当的名称分辨率选项,然后单击“确定”,从而使默认设置进行默认设置。
Wireshark可以对SNMP数据包进行一些基本解码;它还可以使用libsmi库来通过读取MIB文件并使用这些文件中的信息来进行更复杂的解码,以更友好的方式显示OID和可变绑定值。 Cmake将自动确定您系统上是否有Libsmi库。如果您有libsmi库,但不希望Wireshark使用它,则可以使用-DENABLE_SMI=OFF
选项运行cmake。
Wireshark正在不断开发,因此您在使用该错误时可能会遇到错误。请在https://gitlab.com/wireshark/wireshark/-/issues上报告错误。确保您进入错误:
在帮助菜单或wireshark -v
的输出中,用于Wireshark错误的“ Wireshark”项目的完整构建信息以及tshark错误的tshark -v
输出;
如果该错误在Linux上发生,您正在使用的Linux发行版以及该分发的版本;
如果您从命令行运行Wireshark,则用来调用Wireshark的命令,如果您运行了TSHARK,以及您执行的操作顺序导致错误出现。
如果该错误是由特定跟踪文件产生的,请确保将跟踪文件与错误描述一起附加到错误。如果跟踪文件包含敏感信息(例如,密码),请不要发送。
如果Wireshark因“分段违规”,“总线错误”,“流产”或其他产生Unix Core Core Dump文件的错误而死于您,则如果安装了调试器,则可以在很多情况下帮助开发人员。可以通过使用您的调试器(在此示例中的'GDB'),Wireshark二进制文件和结果核心文件获得堆栈跟踪。这是如何使用GDB命令'Backtrace'进行的一个示例。
$ gdb wireshark core
(gdb) backtrace
..... prints the stack trace
(gdb) quit
$
核心转储文件可以命名为“ wireshark.core”,而不是某些平台上的“核心”(例如,BSD系统)。如果您获得了带有TSHARK而不是Wireshark的核心转储,请使用“ Tshark”作为调试器的第一个参数;核心转储可以命名为“ tshark.core”。
Wireshark分布在GNU GPLV2下。有关许可的全文,请参见文件复制。如有疑问,全文是具有法律约束力的部分。这些笔记只是为了使不熟悉GPLV2的人更容易。
对其使用没有限制。它以源或二进制形式的分布有限制。
Wireshark的大部分部分都受到“ GPL版本2或更高版本”许可证的涵盖。某些文件由与GPLV2兼容的不同许可涵盖。
值得注意的是,与Wireshark源分发的一些公用事业由其他许可证本身与GPLV2直接兼容。这没关系,因为只有工具本身是这样的,因此工具的输出不被视为派生工作,因此可以安全许可以供Wireshark使用。这些工具的不完整选择包括:
Wireshark的一部分可以作为库构建和分配。这些零件仍然由GPL覆盖,而不是较少的通用公共许可证或任何其他许可证。
如果将Wireshark的全部或部分集成到自己的应用程序中,并且选择发布或发布它,则必须根据GPLV2的条款发布合并的工作。
该产品没有与此产品相关的保证,明示或暗示。自行使用。
gerald combs [email protected]
Gilbert Ramirez [email protected]
Guy Harris [email protected]