Linux 命令行下嗅探 HTTP 流量的工具:httpry
创始人
2024-03-01 14:11:15
0

假设由于某种原因,你需要嗅探HTTP站点的流量(如HTTP请求与响应)。举个例子,你可能在测试一个web服务器的实验性功能,或者你在为某个web应用或RESTful服务排错,又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因,在这些情况下,进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。

数据包嗅工具tcpdump被广泛用于实时数据包的导出,但是你需要设置过滤规则来捕获HTTP流量,甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如ngxtop可以提供可读的实时web流量跟踪痕迹,但这仅适用于可完全访问live web服务器日志的情况。

要是有一个仅用于抓取HTTP流量的类似tcpdump的数据包嗅探工具就非常好了。事实上,httpry就是:HTTP包嗅探工具。httpry捕获HTTP数据包,并且将HTTP协议层的数据内容以可读形式列举出来。通过这篇指文章,让我们了解如何使用httpry工具嗅探HTTP流量。

在Linux上安装httpry

基于Debian系统(Ubuntu 或 LinuxMint),基础仓库中没有httpry安装包(译者注:本人ubuntu14.04,仓库中已有包,可直接安装)。所以我们需要通过源码安装:

$ sudo apt-get install gcc make git libpcap0.8-dev
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install

在Fedora,CentOS 或 RHEL系统,可以使用如下yum命令安装httpry。在CentOS/RHEL系统上,运行yum之前使其能够访问EPEL repo

$ sudo yum install httpry 

如果你仍想通过基于RPM系统的源码来安装httpry的话,你可以通过这几个步骤实现:

$ sudo yum install gcc make git libpcap-devel
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install 

httpry的基本用法

以下是httpry的基本用法

$ sudo httpry -i  

httpry就会监听指定的网络接口,并且实时的显示捕获到的HTTP请求/相应。

在大多数情况下,由于发送与接到的数据包过多导致刷屏很快,难以分析。这时候你肯定想将捕获到的数据包保存下来以便离线分析。可以使用’b’或’-o’选项保存数据包。’-b’选项将数据包以二进制文件的形式保存下来,这样可以使用httpry软件打开文件以浏览。另一方面,’-o’选项将数据以可读的字符文件形式保存下来。

以二进制形式保存文件:

$ sudo httpry -i eth0 -b output.dump

浏览所保存的HTTP数据包文件:

$ httpry -r output.dump

注意,不需要根用户权限就可以使用’-r’选项读取数据文件。

将httpry数据以字符文件保存:

$ sudo httpry -i eth0 -o output.txt

httpry 的高级应用

如果你想监视指定的HTTP方法(如:GET,POST,PUT,HEAD,CONNECT等),使用’-m’选项:

$ sudo httpry -i eth0 -m get,head

如果你下载了httpry的源码,你会发现源码下有一些Perl脚本,这些脚本用于分析httpry输出。脚本位于目录httpry/scripts/plugins。如果你想写一个定制的httpry输出分析器,则这些脚可以作为很好的例子。其中一些有如下的功能:

  • hostnames: 显示唯一主机名列表。
  • find_proxies: 探测web代理。
  • search_terms: 查找及统计在搜索服务里面的搜索词。
  • content_analysis: 查找含有指定关键的URL。
  • xml_output: 将输出转换为XML形式。
  • log_summary: 生成日志汇总。
  • db_dump: 将日志文件数据保存数据库。

在使用这些脚本之前,首先使用’-o’选项运行httpry。当获取到输出文件后,立即使用如下命令执行脚本:

$ cd httpry/scripts
$ perl parse_log.pl -d ./plugins 

你可能在使用插件的时候遇到警告。比如,如果你没有安装带有DBI接口的MySQL数据库,那么使用db_dump插件时可能会失败。如果一个插件初始化失败的话,那么只是这个插件不能使用,所以你可以忽略那些警告。

当parse_log.pl完成后,你将在httpry/scripts 目录下看到数个分析结果。例如,log_summary.txt 与如下内容类似。

总的来说,当你要分析HTTP数据包的时候,httpry非常有用。它可能并不被大多Linux使用者所熟知,但会用总是有好处的。你觉得这个工具怎么样呢?


via: http://xmodulo.com/2014/08/sniff-http-traffic-command-line-linux.html

作者:Dan Nanni 译者:DoubleC 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

商汤科技开源多模态模型Se...
IT之家 8 月 3 日消息,商汤科技今日宣布,面向社区开源轻量级...
2026-08-03 20:01:37
100%开源!吴恩达做了个...
文婷 发自 凹非寺 量子位 | 公众号 QbitAI AI教育大佬...
2026-07-25 22:49:08
当「变大」不再是唯一的路,...
编辑|Panda 2026 年 6 月,智谱开源 GLM-5.2。...
2026-07-24 20:41:26
刚刚,全球首个具身专属的M...
金磊 发自 凹非寺 量子位 | 公众号 QbitAI 终于,专属具...
2026-07-09 18:37:43
全球首个小时级世界模型来了...
新智元报道 【新智元导读】一个永不结束的AI世界正式开服。720...
2026-07-09 18:37:31
刚刚,百度开源拿下全球第一...
新智元报道 【新智元导读】百度开源Unlimited OCR!3...
2026-06-22 20:30:12

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...