问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Linux下使用命令行嗅探HTTP流量

发布网友 发布时间:2022-05-06 19:29

我来回答

1个回答

热心网友 时间:2023-09-12 22:41

假设由于某种原因,你需要嗅探HTTP站点的流量(如HTTP请求与响应)。举个例子,你可能在测试一个web服务器的实验性功能,或者你在为某个web应用或RESTful服务排错,又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因,在这些情况下,进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。
数据包嗅工具tcpmp被广泛用于实时数据包的导出,但是你需要设置过滤规则来捕获HTTP流量,甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如ngxtop可以提供可读的实时web流量跟踪痕迹,但这仅适用于可完全访问live web服务器日志的情况。

要是有一个仅用于抓取HTTP流量的类似tcpmp的数据包嗅探工具就非常好了。事实上,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 <network-interface>

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

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

浏览所保存的HTTP数据包文件:
$ httpry -r output.mp

注意,不需要根用户权限就可以使用'-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_mp: 将日志文件数据保存数据库。
在使用这些脚本之前,首先使用'-o'选项运行httpry。当获取到输出文件后,立即使用如下命令执行脚本:
$ cd httpry/scripts$ perl parse_log.pl -d ./plugins <httpry-output-file>

你可能在使用插件的时候遇到警告。比如,如果你没有安装带有DBI接口的MySQL数据库,那么使用db_mp插件时可能会失败。如果一个插件初始化失败的话,那么只是这个插件不能使用,所以你可以忽略那些警告。
当parse_log.pl完成后,你将在httpry/scripts 目录下看到数个分析结果。例如,log_summary.txt 与如下内容类似。

总的来说,当你要分析HTTP数据包的时候,httpry非常有用。它可能并不被大多Linux使用者所熟知,但会用总是有好处的。你觉得这个工具怎么样呢?
https://linux.cn/article-4148-1.html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么网页突然自动关闭 网页为什么会突然自动关闭 网页自动关闭什么原因 怎么在微信里面自己组建群聊 门开在东南角,北面中间有窗,办公桌如何摆放 请推荐一款app导航系统,地图信息准确,界面友好,主要用于在境外... 急求一款app导航系统,地图信息准确,界面别太多杂乱的东西,主要用在境外... 欠了闪银3600,逾期125天,今天算了下,差不多要还6000,不还会怎么样?_百 ... 怎么进出口货物老被查验,难道被盯上了?海关是如何查验的,海关查验... 来料加工海关会查什么 外贸知识:海关查验详解 url linux 本机怎么写 公积金为什么要封存两年后才能取? 新加坡鞭刑的痛苦程度? 你如何看待新加坡的鞭刑? 新加坡的鞭刑是怎么执行的 古龙在被林清玄约稿时,为何要陪他喝酒才可以? 华为mate20进水? 小区核酸结果大概什么时候出结果? DNF卢克光之祭坛怎么打 光之祭坛通关攻略 农行有免费的动账提醒短信吗 华为麦芒8换个按键多少钱? 华为麦芒8还个尾插多少钱? 卢克Raid怎么打 光兵混卢克团本怎么混 详细攻略 DNF国服卢克RAID什么时候出 一次电池和二次电池区别? 电池没有电压是不是废了 想买CR2032的电池,买错买了两个cr2016.可以用两个顶一个电池用吗? 电脑cpu带核心显卡的好还是单独cpu好 带AMD独显核心的CPU 还需要插PCI独立显卡吗? IphoneX开热点就关机 iPhone5开热点新买的笔记本一连上就显示有问题然后自动重启 这是怎么回事 是因为电脑用的win iPhone6开个人热点别人连接不上去。必须重启手机或重置网络才可以。但是下次连接还得重启手机!用 男生为什么那么喜欢玩游戏? html后缀的游戏怎么打开? 为什么男生喜欢玩游戏,而女生多爱戴耳机听音乐? 为何大部分男孩子都喜欢打王者荣耀,每天都重复差不多的玩法不腻么? 哎呀游戏浏览器打不开游戏界面怎么办 为什么男孩大多喜欢玩游戏而女孩大多不喜欢玩游戏? 广州到雷州怎么坐车? 男生为什么喜欢玩游戏 有人在QQ上骂我 还建讨论组 找一群人侮辱谩骂我 qq讨论组骂人名称代码 有人在QQ讨论组骂我,有没有办法知道他们是谁或者有没有办法吧这个讨论组解散 为什么我qq上在别人空间和讨论组骂人,结果qq安全中心不让我上qq了,还 qq上面骂人说开讨论是什么东西 一个网友莫名奇妙的突然把你删除了,为什么会难过,她有为啥删除我呢 未成年满十七周岁建QQ讨论组侮辱他人 会受到什么惩罚 两年网友把我删除了,当时他生气了,这么久了他该消气了 我加他还能同意吗? 慢三基本舞步