假设你出于某个原因而想嗅探网络上的实时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并未出现在基本软件库中。所以要使用其源代码来构建它:

  1. ___FCKpd___0nbsp;sudo apt-get install gcc make git libpcap0.8-dev  ___FCKpd___0nbsp;git clone https://github.com/jbittel/httpry.git  
  2. ___FCKpd___0nbsp;cd httpry  ___FCKpd___0nbsp;make  
  3. ___FCKpd___0nbsp;sudo make install 

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

  1. ___FCKpd___1nbsp;sudo yum install httpry 

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

  1. ___FCKpd___2nbsp;sudo yum install gcc make git libpcap-devel  ___FCKpd___2nbsp;git clone https://github.com/jbittel/httpry.git  
  2. ___FCKpd___2nbsp;cd httpry  ___FCKpd___2nbsp;make  
  3. ___FCKpd___2nbsp;sudo make install 

httpry的基本用法

httpry的基本使用场合如下:

  1. ___FCKpd___3nbsp;sudo httpry -i <network-interface> 

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

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

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

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

  1. ___FCKpd___4nbsp;sudo httpry -i eth0 -b output.dump 

回放已保存的HTTP数据包:

  1. ___FCKpd___5nbsp;httpry -r output.dump 

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

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

  1. ___FCKpd___6nbsp;sudo httpry -i eth0 -o output.txt 

httpry的高级用法

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

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