Linux系统中如何从命令行嗅探HTTP流量

Linux系统中如何从命令行嗅探HTTP流量,第1张

假设你出于某个原因而想嗅探网络上的实时HTTP Web流量(比如HTTP请求和回应)。比如说,你可能在测试网站服务器的试验性功能,或者在调试Web应用程序或充分利用REST的服务,抑或是你想要为PAC(代理自动配置)排查故障,或检查从某个网站偷偷下载的任何恶意软件文件。不管出于什么原因,嗅探HTTP流量大都有帮助,对系统管理员、开发人员、甚至最终用户来说都是如此。

虽然tcpdump等数据包嗅探工具广泛用于实时的数据包转储,你还是需要建立合理的过滤机制,以便只捕获HTTP流量;即使那样,通常无法很容易地在HTTP协议层面解读它们的原始输出。ngxtop等实时网站服务器日志分析工具提供了人类可读的实时网站流量痕迹,但只有在完全访问实时网站服务器日志的情况下才适用。

虽然拥有tcpdump之类的嗅探工具不错,但只针对HTTP流量。实际上,httpry正是我们所需的一款HTTP数据包嗅探工具。httpry可捕获网络上的实时HTTP数据包,并且以一种人类可读的格式,显示HTTP协议层面的内容。我们在本教程中将看看如何使用httpry来嗅探HTTP流量。

将httpry安装到Linux上

在基于Debian的系统上(Ubuntu或Linux Mint),httpry并未出现在基本软件库中。所以要使用其源代码来构建它:

___FCKpd___0nbsp;sudo apt-get install gcc make git libpcap08-dev  ___FCKpd___0nbsp;git clone https://githubcom/jbittel/httprygit        ___FCKpd___0nbsp;cd httpry  ___FCKpd___0nbsp;make        ___FCKpd___0nbsp;sudo make install        

在Fedora、CentOS或RHEL上,你可以使用yum来安装httpry,如下所示。在CentOS/RHEL上,先启用EPEL软件库,再运行yum。

___FCKpd___1nbsp;sudo yum install httpry        

如果你仍想在基于RPM的系统上使用源代码来构建httpry,很容易做到这一点,只要:

___FCKpd___2nbsp;sudo yum install gcc make git libpcap-devel  ___FCKpd___2nbsp;git clone https://githubcom/jbittel/httprygit        ___FCKpd___2nbsp;cd httpry  ___FCKpd___2nbsp;make        ___FCKpd___2nbsp;sudo make install        

httpry的基本用法

httpry的基本使用场合如下:

___FCKpd___3nbsp;sudo httpry -i network-interface        

httpry随后侦听某个特定的网络接口,并实时显示捕获的HTTP请求/回应。

不过在大多数情况下,由于大量数据包进进出出,你会看到快速滚动的输出结果。所以,你应该保存已捕获的HTTP数据包以便离线分析。为此,使用“-b”或“-o”选项。“-b”选项让你可以将原始的HTTP数据包保存到二进制文件中,然后可以使用httpry回放HTTP数据包。另一方面,“-o”选项将httpry人类可读的输出结果保存到文本文件中。

想把原始的HTTP数据包保存到二进制文件中:

___FCKpd___4nbsp;sudo httpry -i eth0 -b outputdump        

回放已保存的HTTP数据包:

___FCKpd___5nbsp;httpry -r outputdump        

请注意:当你使用“-r”选项读取转储文件时,就不需要根权限。

想将httpry的输出结果保存到文本文件中:

___FCKpd___6nbsp;sudo httpry -i eth0 -o outputtxt        

httpry的高级用法

如果你只想监视特定的HTTP方法(比如GET、POST、PUT、HEAD和CONNECT等),可以使用“-m”选项:

___FCKpd___7nbsp;sudo httpry -i eth0 -m get,head        

如果你下载了httpry的源代码,就会注意到源代码随带一系列有助于分析httpry输出结果的Perl脚本。这些脚本位于httpry/scripts/plugins目录中。如果你想编写自定义的脚本来分析httpry的输出结果,这些脚本就是可供参考的好例子。其中一些功能如下:

•hostnames:显示独特主机名称和主机数量的列表。

•find_proxies:检测网站代理系统。

•search_terms:查找并计数搜索服务中输入的搜索词语。

•content_analysis:查找含有特定关键词的URL。

•xml_output:将输出结果转换成XML格式。

•log_summary:生成日志摘要。

•db_dump:将日志文件数据转储到MySQL数据库中。

在使用这些脚本之前,先使用“-o”选项运行httpry一段时间。一旦你获得了输出文件,使用下面这个命令,运行一次脚本:

___FCKpd___8nbsp;cd httpry/scripts  ___FCKpd___8nbsp;perl parse_logpl -d /plugins httpry-output-file        

你可能会遇到几个插件的警告信息。比如说,如果你没有创建带DBI接口的MySQL数据库,db_dump插件就可能会出错。要是某个插件未能初始化,它会自动被禁用。所以,你可以忽视那些警告信息。

在parse_logpl完成之后,你会在httpry/scripts目录下看到许多分析结果(txt/xml)。比如说,log_summarytxt看起来就像下面这样:

总而言之,如果你碰到需要解读实时HTTP数据包的情况,httpry就帮得上大忙。普通的Linux用户可能不常解读实时HTTP数据包,但防患未然总归不是件坏事。你觉得这款工具如何?谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。

英文:http://xmodulocom/2014/08/sniff-http-traffic-command-line-linuxhtml

服务器测试方法

服务器测试方法分为两个大方面,性能测试与功能测试。

我们在性能测试方面采用了新的测试方法,主要分为文件测试、数据库性能测试与

Web

性能测试三个

方面。其中,文件性能与数据库性能采用美国

Quest

软件公司的

Benchmark Factory

负载测试和容量规划

软件,

Web

性能测试则使用了

Spirent

公司提供的

Caw WebAvalanche

测试仪。

一、性能测试

1

、文件性能测试方法

Benchmark Factory

软件能按照文件读写的关键指标定制事务。软件最大支持

1000

个虚拟客户。

本次测试环境包括

10

台配置为

PIII800/128MB

内存

/20G

硬盘以上的客户端,它们用来模拟虚拟用户。

控制台为配置是

PIII 850/128MB

内存

/40G

硬盘的

Acer

笔记本电脑。交换机为带有两个千兆

GBIC

接口、

24

10/100M

自适应端口的

Cisco 2950

,客户端与控制台通过

100M

网卡连到交换机上,被测服务器则通

过千兆光纤网卡与交换机相连接。

被测服务器均安装带

SP4

Windows

2000

Advanced Server

操作系统,在所有三项性能测试中都统一

RAID

级别为

5

在具体测试方案设置上,测试软件把决定文件读写操作的关键因素设定为:读

/

写、随机

/

顺序、操作

块大小、对象大小四个。在本次测试中,考虑到我们设有单独的数据库及

Web

测试项目,所以在文件测试

中,我们把目标确定为测试服务器基本的

I/O

性能,这主要由网络接口、系统带宽、磁盘子系统等几大部

分所决定。同时,从几部分的作用看,以大操作块读写大对象文件,小操作块读写小对象文件,较能反映

服务器最基本的

I/O

性能,即“大操作块读写大文件”对系统带宽、缓存的考察,以及“小操作块读写小

文件”对磁盘子系统、网络接口的考察。最终我们确定的四个事务是:

大文件顺序读写

(

操作块

8KB

,对象文件

80% 500KB

20% 1MB)

大文件随机读写

(

操作块

8KB

,对象文件

80% 500KB

20% 1MB)

小文件随机读

(

操作块

1KB

,对象文件

80% 1KB

10% 10KB

10% 50KB)

小文件顺序写

(

操作块

1KB

,对象文件

80% 1KB

10% 10KB

10% 50KB)

每个事务的用户数均以固定步长逐渐增加,

最大可增加到

1000

个虚拟用户。

其中,

“大文件顺序读写”

事务的用户数按照

40

的步长从

1

可增加到

400

(

测试至强服务器

)

200

(

测试

TUALATIN

服务器

)

,其

他事务则将用户数按照

100

的步长从

1

增加至

1000

。我们期望得到其在不同用户数时被测服务器的性能表

现。总体上其走势及峰值反映了该服务器的性能。每项事务均运行三次,每次之间被测服务器进行重启,

最终结果为三次平均值。

2

、数据库性能测试方法

“乘机安全小贴士”安全出行要重视

数据库性能测试同样使用了

Benchmark Factory

软件,测试环境如同文件性能测试。测试时,在被测

服务器上安装

SQL Server 2000

使用企业版。首先在被测服务器上创建新的数据库,通过使用

Benchmark

Factory

预定义的

Database Spec

项目向数据库中创建表,装载数据。在服务器端创建以

CPU

计算为主的

存储过程,通过

10

台客户机模拟用户、按照

40

个虚拟用户的步长递增到

400

个用户,执行该存储过程。

结果是以获得的每秒事务数

(TPS)

衡量服务器的数据库事务处理能力。

整个测试分为三次,

每次之间重新启

动被测服务器,最终取三次平均值作为评价结果。

3

Web

性能测试方法

Web

性能测试工具是由

Spirent

公司提供的

Caw WebAvalanche

WebAvalanche

模拟实际的用户发出

HTTP

请求,

并根据回应给出具体的详细测试结果。

它有以下特点:

能够模拟成百上千的客户端对服务器发

出请求

;

能够模拟真实的网络应用情况,

比如网站在高峰期的访问量应该是动态的维持,

有新客户端的加入,

同时也有原客户的离去,

访问量不是固定不变的

;

可以产生

20000

个连接

/

秒请求量,

足以满足测试的需要

;

测试项目丰富,有访问请求的成功失败数,有

URL

和页面的响应时间,有网络流量数,还有

HTTP

TCP

议的具体情况。

测试时,被测服务器与

WebAvalanche

上都装有千兆光纤网卡,两网卡通过光纤直接连接。监控端

(

置为

PIII 1GHz/128M

内存

/20G

硬盘

)

安装了带

SP4

Windows 2000 Server,

该监控端与

WebAvalanche

过交叉线直连。在监控端通过

Web

浏览器配置

WebAvalanche

,在被测服务器安装了

SQL Server 2000

企业

版,并用微软的

IIS

建立了

Web

服务器。

测试分为静态性能与动态性能两部分。主要是因为在实际的

Web

应用中,有的站点静态内容居多,提

供的服务也绝大多数是静态的,

因此,

他们就会特别的关心服务器静态性能

;

同样,

有的站点提供的服务交

互性的内容居多,他们就会更关心服务器的动态性能。

被测网站中页面大小及静态、动态页面所占比例均参照实际网站得出,整个网站静态、动态页面所占

比例是

70%

30%

,使用的动态页面类型为

ASP

。请求页面样本的文件大小分布比例与整个网站的相同。

静态性能测试模拟发出的均是静态页面请求。在测试动态性能时,动态页面的访问请求占

20%

,其余

80%

为静态页面请求。我们根据实际的

Web

服务器一天中的运行情况建立了一个服务器页面请求模型,该

模型由

4

个阶段组成,第一阶段是预热阶段,

WebAvalanche

发出的请求量由

0

慢慢上升到

200;

第二阶段

是逐步加压阶段,请求量逐步累加到最大值

8200;

第三阶段是动态维持阶段

;

第四阶段是下降阶段,请求量

由最大值迅速下降为

0

。其中,最大请求量略大于实际服务器能够提供的事务处理量。

被测服务器的静态与动态测试分别测试三遍,每遍之间被测服务器和测试仪均重启,结果取三次的平

均值。由此可见,此服务器测试方法立志于最终结果的准确性。

二、功能测试

在功能测试方面,我们对被测服务器的可扩展性、可用性以及可管理性进行了综合评价,其中可扩展

性包括硬盘、

PCI

槽以及内存等的扩展能力,可用性包括对热插拔、冗余设备

(

如硬盘、电源、风扇、网卡

)

的支持,可管理性则指的是服务器随机所带的管理软件。

我们在对服务器进行总体评价时,综合了性能、功能和价格三方面因素,依据《网络世界》所做的用

户调查结果,分别给予不同权重,性能占

50%

,功能占

40%

,而价格则占

10%

。在分析性能时,数据库性能

占其中的

50%

,而文件性能占

30%

Web

性能占

20%

综上所述,这种全新的服务器测试方法更够更准确更直接的对服务器进行测试,而且数据更加精确。

希望能给又需要的读者朋友带来一定的帮助

谢谢采纳。

网络性能主要有主动测试,被动式测试以及主动被动相结合测试三种方法

1主动测量是在选定的测量点上利用测量工具有目的地主动产生测量流量注入网络,并根据测量数据流的传送情况来分析网络的性能。

主动测量在性能参数的测量中应用十分广泛,因为它可以以任何希望的数据类型在所选定的网络端点间进行端到端性能参数的测量。最为常见的主动测量工具就是“Ping”,它可以测量双向时延,IP 包丢失率以及提供其它一些信息,如主机的可达性等。主动测量可以测量端到端的IP 网络可用性、延迟和吞吐量等。因为一次主动测量只是查验了瞬时的网络质量,因此有必要重复多次,用统计的方法获得更准确的数据。

要对一个网络进行主动测量,则需要一个面向网络的测量系统,这种主动测量系统应包括以下几个部分:

- 测量节点:它们分布在网络的不同端点上,进行测量数据包的发送和接收,若要进行单向性能的测量,则它们之间应进行严格的时钟同步;

- 中心服务器:它与各个测量节点通信,进行整个测量的控制以及测量节点的配置工作;

- 中心数据库:存储各个节点所收集的测量数据;

- 分析服务器:对中心数据库中的数据进行分析,得到网络整体的或具体节点间的性能状况

在实际中,中心服务器,中心数据库和分析服务器可能位于同一台主机中。

主动测量法依赖于向网络注入测量包,利用这些包测量网络的性能,因此这种方法肯定会产生额外的流量。另一方面,测量中所使用的流量大小以及其他参数都是可调的。主动测量法能够明确地控制测量中所产生的流量的特征,如流量的大小、抽样方法、发包频率、测量包大小和类型(以仿真各种应用)等,并且实际上利用很小的流量就可以获得很有意义的测量结果。主动测量意味着测量可以按测量者的意图进行,容易进行场景的仿真,检验网络是否满足QoS 或SLA 非常简单明了。

总之,主动测量的优点在于可以主动发送测量数据,对测量过程的可控制性比较高,比较灵活机动,并易于对端到端的性能进行直观的统计;其缺点是注入测量流量本身就改变了网络的运行情况,即改变了被测对象本身,使得测量的结果与实际情况存在一定的偏差,而且注入网络的测量流量还可能会增加网络的负担。

2被动测量是指在链路或设备(如路由器,交换机等)上对网络进行监测,而不需要产生流量的测量方法。

被动测量利用测量设备监视经过它的流量。这些设备可以是专用的,如Sniffer,也可以是嵌入在其它设备(如路由器、防火墙、交换机和主机)之中的,如RMON, SNMP 和netflow 使能设备等。控制者周期性地轮询被动监测设备并采集信息(在SNMP 方式时,从MIB 中采集),以判断网络性能和状态。被动测量主要有三种方式:

- 通过SNMP 协议采集网络上的数据信息,并提交至服务器进行处理。

- 在一条指定的链路上进行数据监测,此时数据的采集和分析是两个独立的处理过程。这种方法的问题是OC48(25Gbit/s)以上的链路速度超过了 PCI 总线(64bit,33MHz)的能力,因此对这些高速链路的数据采集只能采用数据压缩,聚合等方式,这样会损失一定的准确性。

- 在一台主机上有选择性的进行数据的采集和分析。这种工具只是用来采集分析网络上数据包的内容特性,并不能进行性能参数的测量,如Ethereal 等工具。

被动测量非常适合用来测量和统计链路或设备上的流量,但它并不是一个真正的 QoS 参数,因为流量只是当前网络(设备)上负载情况的一个反映,通过它并不能得到网络实际的性能情况,如果要通过被动测量的方法得到终端用户所关心的时延,丢包,时延抖动等性能参数,只能采用在被测路径的两个端点上同时进行被动测量,并进行数据分析,但这种分析将是十分复杂的,并且由于网络上数据流量特征的不确定性,这种分析在一定程度上也是不够准确的。只有链路带宽这个流量参数可以通过被动测量估算出来。

被动测量法在测量时并不增加网络上的流量,测量的是网络上的实际业务流量,理论上说不会增加网络的负担。但是被动测量设备需要用轮询的方法采集数据、陷阱(trap)和告警(利用SNMP 时),所有这些都会产生网络流量,因此实际测量中产生的流量开销可能并不小。

另外,在做流分析或试图对所有包捕捉信息时,所采集的数据可能会非常大。被动测量的方法在网络排错时特别有价值,但在仿真网络故障或隔离确切的故障位置时其作用会受到限制。

总之,被动测量的优点在于理论上它不产生流量,不会增加网络的负担;其缺点在于被动测量基本上是基于对单个设备的监测,很难对网络端到端的性能进行分析,并且可能实时采集的数据量过大,且存在用户数据泄漏等安全性问题。

3主动、被动相结合测试

主动测量与被动测量各有其有缺点,而且对于不同的参数来说,主动测量和被动测量也都有其各自的用途。对端到端的时延,丢包,时延变化等参数比较适于进行主动测量;而对于路径吞吐量等流量参数来说,被动测量则更适用。因此,对网络性能进行全面的测量需要主动测量与被动测量相结合,并对两种测量结果进行对比和分析,以获得更为全面科学的结论。

当前随着网络应用的不断丰富和发展,网络流量也随之变得复杂和种类繁多起来,下面是最为常见的几种网络流量:

1 HTTP流量: HTTP是互联网上使用最为广泛的协议,早就已经取代传统文件下载的主要应用层协议FTP,如今,随着YouTube等视频共享网站的拉动,HTTP协议的网络流量在过去四年里首次超过了P2P应用的流量。

  2 FTP流量: 从互联网出现的开始,FTP就一直是用户使用频率最高的应用服务之一,重要性仅次于HTTP和SMTP。而随着P2P应用的出现,其重要性地位虽然有所降低,但是仍然是用户们下载文件不可替代的重要应用和途径之一。

3 SMTP流量: 电子邮件是整个互联网业务重要的组成部分。据统计,3/4以上的用户上网的主要目的是收发邮件,每天有十数亿封电子邮件在全球传递。特别是由于电子邮件的廉价和操作简便,诱使有人将它作为大量散发自己信息的工具,最终导致了互联网世界中垃圾邮件的泛滥。

4 VoIP流量: 2006年全球IP电话用户从1030万增长到1870万,增幅达83%。2007年VoIP通话量已达到全部通话量的75%。因此,互联网上VoIP的流量也是非常值得管理员关注的。

5 P2P流量: 目前网络带宽“消费大户”是P2P文件共享,在中东占据了49%,东欧地区占据了84%。从全球来看,夜间时段的网络带宽有95%被P2P占据。

6 Streaming流量: 随着诸如PPLive、PPStream等视频软件的出现,视频直播和点播成为广大互联网用户观看节目和网上娱乐的最佳生活方式,因此其流量也在不断地增加。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux系统中如何从命令行嗅探HTTP流量

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情