借助sniffer诊断Linux网络故障

如何配置 OpenClaw 使用免费搜索工具:摆脱付费 API 限制 本文介绍了如何配置OpenClaw使用免费搜索工具来替代付费API。主要内容包括:1)启用内置的web_fetch工具直接获取网页内容;2)创建自定义脚本聚合免费AI资讯源;3)配置其他免费网络工具。文章详细说明了配置步骤,推荐了多个优质免费AI资讯网站,并分析了该方案的优劣势。这种配置方式完全免费且灵活,特别适合预算有限的用户,能够在不依赖付费API的情况下获取所需信息。 阅读详情

嗅探器(sniffer)在网络安全领域是一把双刃剑,一方面常被黑客作为网络攻击工具,从而造成密码被盗、敏感数据被窃等安全事件;另一方面又在协助网络管理员监测网络状况、诊断网络故障、排除网络隐患等方面有着不可替代的作用。嗅探器是企业必不可少的网络管理工具。本文以Linux平台下三个常用的网络嗅探器Tcpdump、Ethereal和EtherApe为例,介绍如何借助sniffer来诊断网络故障,从而保障网络高效安全地运行。 

简介

嗅探器(sniffer)又称为包嗅探器,是用来截获计算机网络通信数据的软件或硬件。与电话电路不同,计算机网络是共享通信通道的,从而意味着每台计算机都可能接收到发送给其它计算机的信息,捕获在网络中传输的数据信息通常被称为监听(sniffing)。嗅探器常常作为一种收集网络中特定数据的有效方法,是利用计算机的网络接口截获目的地为其它计算机数据报文的一种工具。

嗅探器工作在网络环境中的底层,可以拦截所有正在网络上传送的数据,从而成为网络安全的一个巨大威胁。通过对网络进行嗅探,一些恶意用户能够很容易地窃取到绝密文档和敏感数据,因此嗅探器经常被黑客当作网络攻击的一种基本手段。

任何工具都有弊有利,嗅探器既可以作为黑客获得非法数据的手段,但同时对网络管理员来讲又是致关重要的。通过嗅探器,管理员可以诊断出网络中大量的不可见模糊问题。这些问题通常会涉及到多台计算机之间的异常通信,而且可能会牵涉到多种通信协议。借助嗅探器,管理员还可以很方便地确定出哪些通信量属于某个特定的网络协议、占主要通信量的主机是哪台、各次通讯的目标是哪台主机、报文发送占用多少时间、各主机间报文传递的间隔时间等。这些信息为管理员判断网络问题及优化网络性能,提供了十分宝贵的信息。

作为一种发展比较成熟的技术,嗅探器在协助监测网络数据传输、排除网络故障等方面有着不可替代的作用,倍受网络管理员的青睐。可以通过分析网络流量来确定网络上存在的各种问题,如瓶颈效应或性能下降;也可以用来判断是否有黑客正在攻击网络系统。如果怀疑网络正在遭受攻击,通过嗅探器截获的数据包可以确定正在攻击系统的是什么类型的数据包,以及它们的源头,从而可以及时地做出响应,或者对网络进行相应的调整,以保证网络运行的效率和安全。

网络管理员在检测网络故障及维护网络正常通信的过程中,经常需要借助嗅探器提供的某些功能。一般的嗅探器都提供以下一些功能:

1. 自动从网络中过滤及转换有用的信息;

2. 将截获的数据包转换成易于识别的格式;

3. 对网络环境中的通讯失败进行分析;

4. 探测网络环境下的通讯瓶颈;

5. 检测是否有黑客正在攻击网络系统,以阻止其入侵;

6. 记录网络通信过程。

本文介绍如何在Linux平台下利用嗅探器来截获在网络中传递的数据信息,从而检测出是否存在网络瓶颈,以及可能存在的网络故障。在Linux平台下可用的嗅探器非常多,各自的功能和长处也不尽相同,本文主要以Tcpdump、Ethereal和EtherApe三种嗅探器为例,讲述如何利用各自的优点来对Linux网络的性能和故障进行系统的分析和检测。

◆ Tcpdump

Tcpdump是一个命令行方式的网络流量监测工具。它诞生的时间较早,是许多图形化嗅探器的雏形。

◆ Ethereal

Ethereal是一个图形化的网络流量监测工具,比命令行方式的Tcpdump友好很多,可以实时地观看捕获过程。

◆ EtherApe

EtherApe也是一个图形化的网络流量监测工具。与Ethereal不同,EtherApe可以通过对主机间的连接进行检测,图形化地显示网络活动,因而能更加直观地显示出整个网络所处的状态。

sniffer工作原理

在基于TCP/IP协议的局域网中,当数据由应用层自上而下传递时,首先在网络层形成IP数据包,然后再向下到达数据链路层,由数据链路层将IP数据包分割为数据帧,加上以太网包头后向下发送到物理媒体上。以太网包头中包含着本地主机和目标主机的MAC地址,位于链路层的数据帧是依靠48位的MAC地址而非IP地址来寻址的,网络接口卡的驱动程序不会关心IP数据包的目的IP地址。它所需要的仅仅是数据包中的MAC地址。

当局域网内的主机都通过集线器(HUB)等方式连接时,一般采用的是共享式的连接。这种共享式的连接有一个很明显的特点:发送数据时物理上采用的是广播方式。当一台主机向另一台主机发送数据时,共享式的HUB会将接收到的所有数据向HUB上的每个端口转发。也就是说,当主机根据MAC地址发送数据包时,尽管发送端主机告知目标主机的地址,但并不意味着一个网络内的其它主机不能监听到发送端和接收端之间传递的数据。因此从理论上说,当采用共享式连接时,位于同一网段的每台主机都可以截获在网络中传输的所有数据。

正常情况下,局域网内同一网段的所有网卡虽然都具有访问在物理媒体上传输的所有数据的能力,但通常一个网卡只响应以下两种数据帧:

◆ 数据帧的目标MAC地址与网卡自身的MAC地址一致;

◆ 数据帧的目标MAC地址为广播地址。

只有当接收到上面两种类型的数据帧时,网卡才会通过CPU产生一个硬件中断,然后再由操作系统负责处理该中断,对帧中所包含的数据做进一步处理。也就是说,虽然网络上所有主机都可以“监听”到所有的数据,但对不属于自己的报文不予响应,只是简单地忽略掉这些数据。

但是,如果网络中的某台主机不愿意忽略掉不属于自己的数据帧,只需将网卡设置为混杂(Promiscuous)模式,对接收到的每一个帧都产生一个硬件中断,以提醒操作系统处理经过该网卡的每一个数据包,这样网卡就可以捕获网络上所有的数据了。如果一台主机的网卡被配置为混杂模式,那么该主机及其相关的软件就构成了一个嗅探器。

嗅探器工作在网络环境中的底层,它会拦截所有正在网络上传送的数据,通过借助相应的软件进行处理。嗅探器可以实时分析这些数据的内容,进而可以帮助网络管理员分析整个网络的状态、性能或故障。正因如此,在检测网络故障时,嗅探器对管理员来说是一种不可或缺的强力工具。


用Tcpdump过滤数据包

对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过嗅探器来分析原因,找出造成网络阻塞的根源。Tcpdump就是Linux平台下一个以命令行方式运行的网络流量监测工具。它能截获网卡上收到的数据包,并能够协助网络管理员对其中的内容进行相应的分析。

嗅探器能够截获指定接口或所有接口的数据包,这取决于如何对嗅探器进行配置。缺省情况下嗅探器一般会显示所有从网络上截获的数据包,但通常会因为数据量过大而使网络管理员理不清头绪。因此,嗅探器一般都提供有相应的机制来对截获的数据包进行过滤,从而只显示符合特定要求的数据包。Tcpdump提供了一整套完善的规则来对截获的数据包进行过滤,由于大多数图形化的嗅探器都使用类似的过滤机制,因此对Linux网络管理员来说,了解如何使用Tcpdump来捕获感兴趣的数据包是一项必须掌握的基本功。

Tcpdump的安装

在一些Linux发行版中,Tcpdump通常作为标准的软件包被默认安装,执行“tcpdump”命令可以确定是否已经安装了Tcpdump。如果系统中还没有安装Tcpdump,可以去“http://www.tcpdump.org”下载最新的Tcpdump源码包。下面以Tcpdump 3.7.1为例,讲述如何安装Tcpdump,此处使用的操作系统是Red Hat 8.0。

首先下载最新的源码包,并将其解压缩,命令如下:

# cp tcpdump-3.7.1.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar xzvf tcpdump-3.7.1.tar.gz

在编译Tcpdump之前,应先确定pcap库(libpcap)已经安装完毕。这个库是编译Tcpdump时所必需的。如果该库已经安装,就可以执行下面的命令来编译并安装Tcpdump:

# cd tcpdump-3.7.1
# ./configure
# make
# make install



Tcpdump的命令行选项

Tcpdump是一个命令行方式的网络嗅探器。它通过使用命令选项来过滤网卡截获的数据包,如果不进行过滤,过多数量的包会使网络管理员很难理清头绪。Tcpdump的命令格式如下:

tcpdump [ -adeflnNOpqRStuvxX ] [ -c 数量 ] [ -C 文件尺寸 ] [ -F 文件名 ] [ -i 网络接口 ] [ -m 文件名 ] [ -r 文件名 ] [ -s 长度 ] [ -T 类型 ] [ -w 文件名 ] [ -E algo:secret ] [ 表达式 ]

表1 Tcpdump常用命令行选项

-a将网络地址和广播地址转变成容易识别的名字
-d将已截获的数据包的代码以人容易理解的格式输出;
-dd将已截获的数据包的代码以C程序的格式输出;
-ddd将已截获的数据包的代码以十进制格式输出;
-e输出数据链路层的头部信息;
-f将internet地址以数字形式输出;
-l将标准输出变为行缓冲方式;
-n不将网络地址转换成易识别的主机名,只以数字形式列出主机地址(如IP地址),这样可以避免DNS查询;
-t不输出时间戳;
-v输出较详细的信息,例如IP包中的TTL和服务类型信息;
-vv输出详尽的报文信息;
-c在捕获指定个数的数据包后退出;
-F从指定的文件中读取过滤规则,忽略命令行中指定的其它过滤规则;
-i指定监听的网络接口;
-r从指定的文件中读取数据包(该文件一般通过-w选项产生);
-w将截获的数据包直接写入指定的文件中,不对其进行分析和输出;
-T将截获的数据包直接解释为指定类型的报文,目前支持的类型有cnfp、rpc、rtp、snmp、vat和wb。



表1给出了一些常用的Tcpdump命令行选项,使用这些选项可以过滤出真正感兴趣的数据包。

使用Tcpdump的命令行选项可以很方便地过滤出需要的数据包。例如,要过滤掉所有除ARP请求和应答的通信数据,可以输入“tcpdump arp”命令。该命令只对ARP的请求和应答信息进行截获,在Tcpdump的输出信息中,请求是“arp who-has”这样的条目,而应答则是“arp reply”这样的条目,如图1所示。



图1 ARP过滤



如果要做更多的处理,比如从指定的网络接口截获5个ARP数据包,并且不将网络地址转换成主机名,则可以用命令“tcpdump arp -i eth0 -c 5 -n”。

Tcpdump的过滤表达式

Tcpdump的过滤表达式是一个正则表达式,Tcpdump利用其作为过滤数据包的条件。如果一个数据包满足表达式的条件,则这个数据据包将会被捕获;如果不指定表达式,则在网络上任何两台主机间的所有数据包都将被截获。过滤表达式的作用就是使Tcpdump只输出网络管理员所需要的数据,如一个指定的网络接口和特定主机间的IP数据包。

Tcpdump的过滤表达式中一般有如下几种类型的关键字:

◆ 类型关键字

这类关键字用于指定主机、网络或端口,包括host、net和port三个关键字。例如,可以用“host 9.185.10.57”来标明监听的主机;用“net 9.185.0.0”来标明监听的网络;用“port 23”来标明监听的端口。如果没有在表达式中指明类型,则缺省的类型为host。

◆ 方向关键字

这类关键字用于指定截获的方向,包括dst、src、dst or src、dst and src四个关键字。例如,可以用src 9.185.10.57来指明截获的数据包中的源主机地址;用“dst net 9.185.0.0”来指明截获的数据包中的目标网络地址。如果没有在表达式中指明方向,则缺省的方向为“dst or src”,即两个方向的数据包都将被捕获。对于数据链路层协议(如SLIP和PPP),使用inbound和outbound来定义方向。

◆ 协议关键字

这类关键字用于指定要截获的数据包所属的协议,包括ether、fddi、tr、ip、ip6、arp、rarp、decnet、tcp和udp等关键字。关键字fddi指明在FDDI(分布式光纤数据接口网络)上的特定网络协议。实际上它是ether的别名。fddi和ether具有类似的源地址和目标地址,所以可以将fddi协议包当作ether的包进行分析和处理。其它几个关键字只是指定了所要截获的协议数据包。如果没有在表达式中指明协议,则Tcpdump会截获所有协议的数据包。

除了上述三种类型的关键字外,Tcpdump的过滤表达式中还可以指定的一些重要关键字包括gateway、broadcast、multicast、less、greater。这些关键字对于监听网络中的广播和多播很有帮助。关于这些关键字的更多信息和用法请参考Tcpdump的man手册。

在Tcpdump的过滤表达式中,各类关键字之间还可以通过布尔运算符来构成组合表达式,以满足实际运用时的需要。布尔运算符包括取非运算符(not或!)、与运算符(and或&&)、或运算符(or或||),使用布尔运算符可以将表达式组合起来构成强大的组合条件,从而能够对Tcpdump的过滤器做进一步细化。

下面给出几个使用Tcpdump过滤数据包的例子,嗅探器提供的过滤表达式对于管理员监测网络运行状况非常重要:

1. 如果想要截获主机“9.185.10.57”所有收到和发出的数据包,可以使用如下命令:

# tcpdump host 9.185.10.57



2. 如果想要截获在主机“9.185.10.57”和主机“9.185.10.58”或“9.185.10.59”之间传递的数据包,可以使用如下命令:

# tcpdump host 9.185.10.57 and /
  >/(9.185.10.58 or 9.185.10.59/)



需要注意的是,在使用布尔运算符构成组合表达式时,有时需要使用括号来表达复杂的逻辑关系。如果要在命令行中使用括号,一定要用转义字符(“/”)对括号进行转义,否则命令行解释器将给出语法错误的提示。

3. 如果想要截获主机“9.185.10.57”和除主机“9.186.10.58”外所有其它主机之间通信的IP数据包,可以使用如下命令:

# tcpdump ip host 9.185.10.57 and ! 9.185.10.58



4. 如果想要截获主机“9.185.10.57”接收或发出的FTP(端口号为21)数据包,可以使用如下命令:

# tcpdump tcp port 21 host 9.185.10.57



5. 如果怀疑系统正受到拒绝服务(DoS)攻击,网络管理员可以通过截获发往本机的所有ICMP包,来确定目前是否有大量的ping指令流向服务器,此时就可以使用下面的命令:

# tcpdump icmp -n -i eth0


Tcpdump的输出结果

在对网络中的数据包进行过滤后,Tcpdump的输出结果中包含网络管理员关心的网络状态信息。由于Tcpdump只是一个命令行方式的嗅探器,因而其输出结果不是很直观,下面以几种典型的输出信息为例,介绍如何对Tcpdump的输出结果进行分析。

1. 数据链路层头信息

使用“tcpdump -e host tiger”命令截获主机“tiger”所有发出和收到的数据包,并在输出结果中包含数据链路层的头部信息。

“tiger”是一台装有Linux的主机,其MAC地址是00:D0:59:BF:DA:06;“mag”是一台装有SCO Unix的工作站,其MAC地址是08:90:B0:2F:AF:46,上述命令的输出结果如下:

20:15:20.735429 eth0 
< 08:90:b0:2f:af:46 00:d0:59:bf:da:06 ip 60: mag.36579 >
 tiger.ftp 0:0(0) ack 25565 win 8970 (DF)



在输出的信息中,“20:15:20”为截获数据包的时间,“735429”是毫秒数,“eth0 <”表示从网络接口eth0接收该数据包(若为“eth0 >”,则表示从网络接口eth0发送数据包)。“08:90:b0:2f:af:46”是主机mag的MAC地址,指明发送该数据包的源主机为“mag”,“00:d0:59:bf:da:06”是主机tiger的MAC地址,指明该数据包发送的目标主机为“tiger”。“ip”表明该数据包是IP数据包,“60”是数据包的长度,“mag.36579 > tiger.ftp”表明该数据包是从主机“mag”的36579端口发往主机“tiger”的FTP(21)端口。“ack 25565”表示对序列号为25565的包进行确认,“win 8970”则指明发送窗口的大小为8760。

2. ARP包的输出信息

若使用“tcpdump arp -c 2”命令截获ARP数据包,得到的输出结果可能是:

20:42:22.713502 eth0 
> arp who-has mag tell tiger 
(00:d0:59:bf:da:06)
20:42:22.713907 eth0 
< arp reply mag is-at 08:90:b0:2f:af:46
 (00:d0:59:bf:da:06)



在输出的信息中,“20:42:22”为截获数据包的时间;“713502”和“713907”为毫秒数;“eth0 >”表明从主机发出该数据包;“eth0 <”表明从主机接收该数据包。“arp”表明该数据包是ARP请求,“who-has mag tell tiger”表明是主机“tiger”请求主机“mag”的MAC地址,“00:d0:59:bf:da:06”是主机“tiger”的MAC地址。“reply mag is-at”表明主机“mag”响应“tiger”的ARP请求,“08:90:b0:2f:af:46”是主机“mag”的MAC地址。

3. TCP包的输出信息

用Tcpdump截获的TCP包的一般输出格式如下:

src > dst: flags data-sequno ack window urgent options



“src > dst:”标明从源地址到目的地址;flags是TCP包中的标志信息,包括S(SYN)标志、F(FIN)标志、P(PUSH)标志、R(RST)标志和“.”(没有标志);data-sequno是数据包中的数据序列号;ack是下次期望的数据序列号;window是接收缓存的窗口大小;urgent标明数据包中是否有紧急指针;options是可能的选项值。

4. UDP包的输出信息

用Tcpdump截获的UDP包的一般输出格式如下:

src.port1 > dst.port2: udp lenth



UDP中包含的信息很简单。上面的输出结果表明从主机“src”的“port1”端口发出的一个UDP数据包被送到主机“dst”的“port2”端口,数据包的类型是UDP,其长度为“lenth”。

通过上面的介绍可以知道,Tcpdump是一个命令行方式的嗅探器。它可以根据需要显示出经过一个网络接口的所有数据包,供网络管理员对网络进行检测。但由于采用的是命令行方式,对这些数据包的分析可能会比较困难。利用Tcpdump提供的表达式过滤一些截获的数据包,可以从截获的大量数据包中提取出有用的信息,从而能够有针对性地对网络进行监测。

由于所有网络嗅探器的原理都大体相似,因而Tcpdump的基本知识可以应用于几乎所有的嗅探器。Tcpdump是基于命令行方式的嗅探器,其输出结果比较难于分析,因此很多网络管理员都使用图形化的嗅探器来检测网络故障,并处理可能存在的安全问题。下次将介绍两个图形化的网络嗅探器—Ethereal和EhterApe。同Tcpdump相比,使用这两个嗅探器的分析过程要简单许多。

上面介绍了嗅探器的基本原理,以及如何用Tcpdump来截获网络上的数据包。但Tcpdump只是一个命令行方式下的网络嗅探器,虽然功能强大,可分析起数据包来却不是很方便。好在Linux下还有一些具有良好GUI界面的嗅探器可以借助。Ethereal和EtherApe就是其中的佼佼者。有了Tcpdump的基础,再使用这两个嗅探器就感觉很轻松。

用Ethereal分析协议数据包

Ethereal是一个图形用户接口(GUI)的网络嗅探器,能够完成与Tcpdump相同的功能,但操作界面要友好很多。Ehtereal和Tcpdump都依赖于pcap库(libpcap),因此两者在许多方面非常相似(如都使用相同的过滤规则和关键字)。Ethereal和其它图形化的网络嗅探器都使用相同的界面模式,如果能熟练地使用Ethereal,那么其它图形用户界面的嗅探器基本都可以操作。

Ethereal的安装

在http://www.ethereal.com网站上可以下载到最新的Ethereal源码包。下面以Ethereal 0.9.9为例,讲述如何安装Ethereal,此处使用的操作系统是Red Hat 8.0。

首先下载最新的源码包,并将其解压缩:

# cp ethereal-0.9.9.tar.bz2 /usr/local/src/
# cd /usr/local/src/
# bzip2 -d ethereal-0.9.9.tar.bz2
# tar xvf ethereal-0.9.9.tar


同Tcpdump一样,在编译Ethereal之前应先确定已经安装pcap库(libpcap),这是编译Ethereal时所必需的。如果该库已经安装,就可以执行下面的命令来编译并安装Ethereal:

# cd ethereal-0.9.9
# ./configure
# make
# make install


设置Ethereal的过滤规则

当编译并安装好Ethereal后,就可以执行“ethereal”命令来启动Ethereal。在用Ethereal截获数据包之前,应该为其设置相应的过滤规则,可以只捕获感兴趣的数据包。Ethereal使用与Tcpdump相似的过滤规则,并且可以很方便地存储已经设置好的过滤规则。要为Ethereal配置过滤规则,首先单击“Edit”选单,然后选择“Capture Filters...”菜单项,打开“Edit Capture Filter List”对话框(如图1所示)。因为此时还没有添加任何过滤规则,因而该对话框右侧的列表框是空的。



图1 Ethereal过滤器配置对话框



在Ethereal中添加过滤器时,需要为该过滤器指定名字及规则。例如,要在主机10.1.197.162和www.sohu.com间创建过滤器,可以在“Filter name”编辑框内输入过滤器名字“sohu”,在“Filter string”编辑框内输入过滤规则“host 10.1.197.162 and www.sohu.com”,然后单击“New”按钮即可,如图2所示。



图2 为Ethereal添加一个过滤器



在Ethereal中使用的过滤规则和Tcpdump几乎完全一致,这是因为两者都基于pcap库的缘故。Ethereal能够同时维护很多个过滤器。网络管理员可以根据实际需要选用不同的过滤器,这在很多情况下是非常有用的。例如,一个过滤器可能用于截获两个主机间的数据包,而另一个则可能用于截获ICMP包来诊断网络故障。

当所有需要的过滤器都创建好后,单击“Save”按钮保存创建的过滤器,然后单击“Close”按钮来关闭“Edit Capture Filter List”对话框。要将过滤器应用于嗅探过程,需要在截获数据包之前或之后指定过滤器。要为嗅探过程指定过滤器,并开始截获数据包,可以单击“Capture”选单,选择“Start...”选单项,打开“Capture Options”对话框,单击该对话框中的“Filter:”按钮,然后选择要使用的过滤器,如图3所示。



图3 为Ethereal指定过滤器



注意在“Capture Options”对话框中,“Update list of packets in real time”复选框被选中了。这样可以使每个数据包在被截获时就实时显示出来,而不是在嗅探过程结束之后才显示所有截获的数据包。

在选择了所需要的过滤器后,单击“OK”按钮,整个嗅探过程就开始了。Ethereal可以实时显示截获的数据包,因此能够帮助网络管理员及时了解网络的运行状况,从而使其对网络性能和流量能有一个比较准确的把握。

用Ethereal分析数据包

Ethereal和其它的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。

使用Ethereal可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。图4是在Ethereal中对一个HTTP数据包进行分析时的情形。

在图3最上边的数据包列表中,显示了被截获的数据包的基本信息。从图中可以看出,当前选中数据包的源地址是10.1.197.162,目的地址为61.135.150.65,该数据包所属的协议是超文本传输协议(HTTP)。更详细的信息表明该数据包中含有一个HTTP的GET命令,要求下载starrtlog.js文件到客户端的Web浏览器。



图4 用Ethereal分析数据包内容



图4中间是协议树,通过协议树可以得到被截获的数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet Protocol)、TCP端口号(Transmission Control Protocol),以及HTTP协议的具体内容(Hypertext Trnasfer Protocol)。通过扩展协议树中的相应节点,可以得到该数据包中携带的更详尽的信息。

图4最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便地对各种协议的数据包进行分析。

Ethereal提供的图形化用户界面非常友好,管理员可以很方便地查看到每个数据包的详细信息,协议树及其对应的十六进制表示对分析每个数据包的目的很有帮助,综合使用Ethereal和Tcpdump能够基本满足网络管理员在Linux系统上的所有嗅探要示。

用EtherApe查看网络流量

EtherApe也是一个图形化的网络嗅探器。与Ehtereal不同,EtherApe通过验证主机与主机之间的链接,图形化地显示网络目前所处的状态。EtherApe使用不同颜色的连线来表示位于不同主机之间的连接,而连线的粗细则表明主机间数据流量的大小。这些信息都是实时变化的,因而能够协助管理员随时了解到网络中各部分流量的变化情况。

EtherApe的安装

EhterApe支持Ethernet、FDDI和Token Ring等多种网络,能够实时地从网络或文件中读取网络流量的变化情况。此外它还可以将网络流量信息保存下来,以便在之后需要时再显示出来。在http://www.sourceforge.net/projects/etherape/网站上可以下载到最新的EtherApe源码包。下面以Ethereal 0.8.2为例,讲述如何安装EtherApe(使用的操作系统是RedHat 8.0)。

首先下载最新的源码包并将其解压缩,代码如下:

# cp etherape-0.8.2.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar xzvf etherape-0.8.2.tar.gz


EtherApe使用的是GNOME这一图形用户接口库。与Ethereal和Tcpdump一样,它也使用pcap库(libpcap)对网络上传输的数据包进行截获和过滤。在编译EtherApe之前,应先确定所需的这些库已经安装好,因为这是编译EtherApe时所必需的。如果这些库已经安装,就可以执行下面的命令来编译并安装EtherApe:

# cd etherape-0.8.2
# ./configure
# make
# make install


用EtherApe分析网络流量

当编译并安装好EtherApe后,就可以执行“etherape”命令来启动EtherApe。

当用EtherApe截获在网络上传输的数据包时,也需要先为其指定过滤规则,否则EthreApe将捕获网络中的所有数据包。单击工具栏上的“Pref.”按钮,打开“Preferences”对话框,在该对话框中的“Capture”属性页中,可以找到用于设置过滤规则的“Capture filter”下拉框。由于采用的都是pcap库,因此EtherApe过滤规则的设置与Tcpdump和Ethereal是相同的。

设置好过滤规则后,单击工具栏上的“Start”按钮,就可以开始对网络中感兴趣的数据包进行嗅探。EhterApe图形化地显示网络流量,图5是当EtherApe处于Ethernet模式下时的网络流量图。



图5 EtherApe监测的Ethernet流量图



EtherApe提供了Token Ring、FDDI、Ethernet、IP和TCP五种监听模式。当处于Ethernet模式下时,EtherApe会截获所有符合过滤规则的以太网数据包,但有时网络管理员可能只对IP数据包感兴趣,这时可以将EtherApe切换到IP模式。单击“Capture”菜单,选择“Mode”菜单项,然后再选择相应的模式,就可以完成模式之间的切换。图6是当EhterApe处于IP模式下时的网络流量图。



图6 EtherApe监测的IP流量图



EtherApe能够以图形的方式显示网络流量。用户看到的是一个很直观的用于表示网络上各主机间流量大小的图,而不是单个的数据包,因而更容易从整体上把握整个网络的运行状况,在定位网络故障时相对来说也变得更加容易。

Plecs standalone 4.9.5最新版本,赶紧来下载使用吧,需要做并网逆变器及光伏储能变换器的朋友赶紧下载起来 PLECS 4.9.5较4.7.1版实现全面升级:采用自适应求解器切换技术,支持多核CPU/GPU加速,仿真速度提升30-50%;新增模型引用功能,实现模块化设计;强化光伏/风电等新能源组件,支持多物理场耦合分析;优化代码生成功能,兼容多种硬件平台和FMU导入。新版特别适用于复杂电力电子系统、多域联合仿真及硬件在环测试项目,但对硬件配置要求更高。基础教学项目仍可使用4.7.1版本。建议用户根据项目复杂度选择升级方案。 阅读详情

相关推荐

第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛技术解析与实战指南

本文深入解析了第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛的核心技术。内容涵盖从零搭建数字孪生环境、实现AI视觉任务(二维码识别、引导线追踪、目标检测)、在边缘设备部署轻量化大模型进行图生文描述,到遥操作与自主控制的平滑切换,并提供了基于ROS2的系统集成与赛场实战指南,助力参赛者高效备赛。

weixin_29252171的博客 2778

ARP攻击原理深度解析:从协议漏洞到企业级防御实战

地址解析协议(ARP)作为TCP/IP协议栈中连接网络层与数据链路层的核心桥梁,其核心功能是将IP地址解析为MAC地址,是局域网设备通信的信任基石。然而,该协议在设计之初缺乏认证机制,默认信任所有ARP应答,这一原理性缺陷为ARP欺骗、ARP泛洪等攻击提供了可乘之机。攻击者通过伪造IP-MAC映射关系,可实现中间人窃听、会话劫持或发起拒绝服务攻击,其技术价值在于揭示了基础网络协议中安全与效率的深刻矛盾。这类攻击在企业内网、校园网及家庭网络等以太网环境中普遍存在,危害极大且隐蔽性强。针对此威胁,有效的防护需构

weixin_33957648的博客 400

黑科技已上线|Lazada数据分析软件,一键式搞定你的店铺!

工欲利其事,必先利其器。在lazada跨境电商的整个流程中,适当的使用一些工具,不仅能大大的简化工作流程,而且可以提高实施效率。Mengla专为lazada电商卖家行业精细化分析lazada数据分析软件都有哪些强大功能! 一、两大优势: 1.海量数据: 数据覆盖面积大;数据分析维度逛;精确算法抓取海量数据;亿万数据秒级响应多种数据来源; 2.技术成熟: 深耕SaaS大数据挖掘;提供一站式数据分析服务;拥有领先的采集技术和运算模型架构; 二、Lazada数据分析软件的功能: 1.各国站点一键分析: 马来西亚

Menglakeji的博客 1146

如何借助Sniffer来诊断Linux网络故障?

夫运维者、善假于物也、形如 Sniffer(嗅探器)。Sniffer 在网络安全领域是一把双刃剑、或被黑客作为网络攻击工具、或协助运维诊断网络故障,本文以 Linux 平台下三个常用的网络嗅探器 Tcpdump、Ethereal 和 EtherApe 为例,介绍如何借助 Sniffer 来诊断网络故障,从而保障网络高效安全地运行,但由于 Sniffer 实在太强大、本文也只是入门性的做些介绍、有兴

chengfangang的专栏 1634

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

TM1621/HT1621 段码LCD驱动器

TM1621 LCD 驱动器

qq_45325304的博客 1万+

【人在运维囧途_06】 借助 sniffer 诊断 Linux 网络故障

夫运维者、善假于物也、形如 sniffer(嗅探器)    sniffer 在网络安全领域是一把双刃剑、或被黑客作为网络攻击工具、或协助运维诊断网络故障        本文以 Linux 平台下三个常用的网络嗅探器 Tcpdump、Ethereal 和 EtherApe 为例    介绍如何借助 sniffer 来诊断网络故障,从而保障网络高效安全地运行    但由于 sniffer 实在太强大、

记录创业路上的一些想法 2891

车牌识别系统

随这图形图像技术的发展,现在的车牌识别技术准确率越来越高,识别速度越来越快。无论何种形式的车牌识别系统,它们都是由触发、图像采集、图像识别模块、辅助光源和通信模块组成的。车牌识别系统涉及光学、电器、电子控制、数字图像处理、计算视觉、人工智能等多项技术。触发模块负责在车辆到达合适位置时,给出触发信号,控制抓拍。辅助光源提供辅助照明,保证系统在不同的光照条件下都能拍摄到高质量的图像。图像预处理程序对抓拍的图像进行处理,去除噪声,并进行参数调整。然后通过车牌定位、字符识别,最后将识别结果输出。 牌照自动识别是一

FPGA/MATLAB学习教程/源码/项目合作开发 2万+

博客整理:人在运维囧途系列学习目录

好像没什么好说的了、就聊聊我的 51 吧、真舒坦呢、、 连续通宵 2 天 、把 电视剧 &lt;&lt;暗香&gt;&gt; 看完、一个感受两个字:责任 是的、我看出了责任 责任、通常不是一个人的事、而是一代人的 我在被窝里看 &lt;&lt;暗香&gt;&gt;、而我爸妈在工作、是我在逃避责任吗? 另外、这同样是个系列的博文、Rocky 在后续将持续更新、敬请大家关...

数据库 95

上线之前多一道闸:业务审核系统的接入定义、双轨状态机与可靠生效闭环

运营后台“保存即生效”,让价格、库存、人群等配置每次修改都相当于一次无评审的上线。本文以至尊会员降价活动为例,系统拆解业务审核系统:用带业务语义的操作编码、规则化审核人与候选人快照、完整的生效回调契约做好接入定义;把业务改造为提交待生效,以不可变快照、字段级差异和唯一约束加幂等号防误配防重复;用审批轨与执行轨双轨状态机、链路式重新提交和以事件为准的审核链路理清状态;最后以发件箱、幂等键、超时先查后试、乐观锁与对账闭合生效环节,并结合两个可运行的Java程序,给出五种生效策略的事故率实测对比。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 6万+

HFSS实战项目——基片集成波导(SIW)带通滤波器

设计了一款直接耦合的SIW带通滤波器, 采用直接耦合的形式, 工作频率覆盖19~21 GHz, 通带内插入损耗小于1.5 dB, 回波损耗小于-20 dB, 带外抑制特性良好.

2401_87464239的博客 4897

四路 CAN 转 4G 网关

SG‑CAN‑4G‑410 为**四路隔离 CAN 转 4G 工业网关**,把 CAN2.0A/B 报文封装成 TCP/UDP 报文,通过 4G 无线网络实现 CAN 总线远程监控、远程控制。四路 CAN 相互独立;以太网仅用于本地配置,不做业务数据传输;支持移动 / 联通 / 电信 4G 网络。

S2003120416的博客 166

绿米Aqara S1【妙控开关 S1E】版本降级或升级自定义固件的方法

绿米Aqara S1【妙控开关 S1E】版本降级或升级自定义固件的方法

LeeKwen的专栏 2171

【计算机网络】断点续传是怎么做到的:从 Range 请求到分片上传的完整机制

断点续传在下载侧靠的是 HTTP 现成的 Range 协议,Content-Range 保证偏移对得上,If-Range 防止文件变更导致的错误拼接;上传侧没有标准,需要自己设计 init/part/complete 三段式交互,核心是让服务端记住“哪些块已经收下”,从而把失败粒度从整个文件降到单个分片。 这套机制可以迁移到任何长耗时操作的设计上。判断方法很简单:先问失败粒度是多少。如果一次操作失败就得从头再来,那它迟早会在生产环境里出问题——传输、批量导入、数据迁移、长事务,都是同一个道理。把大操作切成

2503_94545876的博客 541

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 429

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 328

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

AI 芯片片上网络 NoC 深度解析:flit、虚通道与拥塞控制如何决定 GPU/TPU/LPU 的算力利用率

AI芯片算力瓶颈不在FLOPS,而在片上网络(NoC)——数据搬运的能耗与延迟决定MFU上限。物理限制下,长线延迟不随工艺缩小,迫使NoC将全局布线拆为可流水的短链路;能量账显示,一跳传输耗能可达数十次乘加操作。拓扑选择直接影响性能:二维mesh虽布线可行,但均匀流量下每节点可用带宽按1/√N衰减,实测仅达标称值30%。虚通道、双网设计、静态调度(如Groq)等技术旨在突破此瓶颈。从总线到crossbar再到多跳NoC,本质是用延迟换可行性。未来趋势:专用通路(脉动阵列)、晶圆级集成(Cerebras)、跨

我的博客 94

台湾行情数据API接入教程

想用程序获取台股行情,很多人第一步会搜“台股资料 API 推荐”,结果发现选择不少:证交所有免费接口,Yahoo Finance 也能查,券商还有自己的 API。真正写代码时才发现,有的数据只到收盘,有的延迟 20 分钟,有的必须先开户。本文先梳理台湾行情数据的几种获取渠道,再用 Python 从零搭一个可以运行的台股数据脚本:查代码清单、取实时报价和盘口、拉历史K线、做复权、用 WebSocket 接收实时推送,最后结合台积电 ADR 和新台币汇率计算跨市场溢价。

qq_34102871的博客 308

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 220

Qt网络编程实战指南:从底层Socket到现代异步架构的选型与避坑

本文梳理Qt网络编程的核心模块与演进路线,对比QTcpSocket与QNetworkAccessManager的使用边界,结合HTTP请求与TCP长连接的完整示例,说明信号槽、内存管理与事件循环的配合方式。重点记录连接池设计、证书校验、线程亲和性等实际开发中的关键决策点,帮助读者在C/S或跨平台项目中建立稳定的网络层基座。

2402_83344867的博客 299

从母钟到子钟:NTP 网络时钟系统架构与软件接口

本文从工程角度简要介绍公共场所的时间同步需求、NTP协议的定位,以及典型LED同步时钟的系统架构与硬件设计,以讯鹏科技4寸与5寸同步时钟为例。

SPZHCS的博客 164

DPVS 报文黑匣子与 Crash 自动拉黑:给转发面装上“飞行记录仪“

谁打挂了我(crash dump)、他之前发了什么(慢路径环)、他还会再来(入口拉黑)。设计上我们始终坚持两条原则:记录与决策分离(黑匣子永远只说不做),以及误伤成本优先于漏放成本(三道闸门全部通过才拉黑,expire 到期自动解封)。性能上,全量快路径摘要 + 入口查表的综合开销低于 1.3%,在 FIP 网关的流量水位下不可感知。飞行记录仪的价值不在于飞机正常飞行的时候,而在于它让每一次事故都变成一次改进。对转发面来说,同样如此。

zyun360的博客 272
上一篇: cvs客户端大全
下一篇: 中文man手册:tcpdump
loef
博客等级 码龄24年 4粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值