linux 下如何抓取HTTP流量包(httpry)
基于某些原因你需要嗅探HTTP Web流量(即HTTP请求和响应)。例如,你可能会测试Web服务器的性能,或者x奥uy调试Web应用程序或RESTful服务 ,又或者试图解决PAC(代理自动配置)问题,或检查从网站上下载的任何恶意文件。甭管是什么原因,对于系统管理员,开发人员,甚至是最终用户,嗅探HTTP流量是非常有帮助的。
数据包嗅探工具如tcpdump是普遍用于实时数据包转储,需要设定一些过滤规则,只捕获HTTP流量,即便如此,它的输出内容很难理解,需要一定的协议基础知识。实时的Web服务器日志分析工具如ngxtop提供了可读的实时网络流量的痕迹,但仅适用于具有完全访问过的Web服务器的日志。
有没有一款功能强大且又只针对HTTP流量的工具呢?那就是httpry,HTTP数据包嗅探工具。捕获HTTP数据包,并显示可读格式的HTTP协议层面的内容。
安装httpry
在基于debian系统如Ubuntu,httpry没有包含在基础仓库中。
|
1
2
3
4
5
|
$ 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系统需要安装EPEL源
|
1
|
$ sudo yum install httpry
|
也可以源码编译
|
1
2
3
4
5
|
$ sudo yum install gcc make git libpcap-devel
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install
|
httpry基本用法
|
1
|
$ sudo httpry -i <network-interface>
|
httpry监听在指定的网卡下,实时捕获并显示HTTP请求与响应的包

在大多数情况下,输出滚动非常快的,需要保存捕获的HTTP数据包进行离线分析。可以使用-b或-o选项。“-b”选项将原始的HTTP数据包保存到一个二进制文件,然后可以用httpry进行重播。 “-o”选项保存可读的输出到文本文件。
保存到二进制文件中:
|
1
|
$ sudo httpry -i eth0 -b output.dump
|
重放:
|
1
|
$ httpry -r output.dump
|
保存到文本文件:
|
1
|
$ sudo httpry -i eth0 -o output.txt
|
httpry高级用法
如果你要捕获特定的HTTP方法,如GET、POST、PUT、HEAD、CONNECT等等,可以使用‘-m'选项:
|
1
|
$ sudo httpry -i eth0 -m get,head
|

如果你下载httpry源码,在源码目录下,有一个perl脚本来帮助我们分析httpry输出。该脚本在httpry/scripts/plugins目录下。 如果你想编写一个httpry输出的定制解析器,这些脚本是个很好的例子。功能有:
- hostname : 显示一些列唯一主机名
- find_proxies:检测web代理
- search_terms:查找并计算在搜索服务中输入搜索词
- content_analysis:查找包含特定关键字的URI
- xml_output:以xml格式输出
- log_summary:生成日志摘要
- db_dump:将日志转存到mysql数据库中
在使用这些脚本前,先使用’-o'选项运行一段时间。一旦得到输出,运行这些脚本分析:
|
1
2
|
$ cd httpry/scripts
$ perl parse_log.pl -d ./plugins <httpry-output-file>
|
parse_log.pl执行完后,会在httpry/scripts目录下生成一些分析结果文件(*.txt/xml)。例如,log_summary.txt看起来像下面这样:

linux 下如何抓取HTTP流量包(httpry)的更多相关文章
- wireshark在windows下无法抓取localhost数据包
在调试SSL时要抓包,通过tcpview和minisniffer等工具明明看到tcp连接已经建立并开始收发数据了,但wireshark却总是无法抓到相应的数据包. 今天早上,HQ的高工告诉我“wire ...
- Linux下密码抓取神器mimipenguin
前有Mimikatz,今有mimipenguin,近日国外安全研究员huntergregal发布了工具mimipenguin,一款Linux下的密码抓取神器,可以说弥补了Linux下密码抓取的空缺. ...
- Linux使用tcpdump抓取网络数据包示例
tcpdump是Linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...
- linux下的抓包工具tcpdump
1.由netstat查看网络情况,引出的TCP建立连接.终止连接过程,以及TCP状态分析: 2.Soap=XML+HTTP引出的HTTP协议分析: 3.Soap(Simple Object Acces ...
- linux下libpcap抓包分析
一.首先下载libpcap包http://www.tcpdump.org/#latest-release 然后安装,安装完成后进入安装根目录的tests文件夹,编译运行findalldevstest. ...
- IEEE802.11数据帧在Linux上的抓取
IEEE802.11数据帧在Linux上的抓取终于得到了梦寐的<802.11无线网络权威指南>,虽然是复印版本,看起来也一样舒服,光看书是不行的,关键还是自己练习,这就需要搭建一个舒服的实 ...
- 在服务器上用Fiddler抓取HTTPS流量
转自:http://yoursunny.com/t/2011/FiddlerHTTPS/在服务器上用Fiddler抓取HTTPS流量 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常 ...
- Fiddler抓取https数据包
Wireshark和Fiddler的优缺点: ①Wireshark是一种在网络层上工作的抓包工具,不仅自带大量的协议分析器,而且可以通过编写Wireshark插件来识别自定义的协议.虽然Wiresha ...
- Charles 如何抓取https数据包
Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...
随机推荐
- @font-face 的用法
现在很多设计用的字体都是五花八门的.我们切图又不能很好的让搜索爬虫搜索.就会使用@font-face方法: @Font-face目前浏览器的兼容性: Webkit/Safari(3.2+):TrueT ...
- EntityFrameWork使用过程问题总结
1.记录上次遇到个一个问题. (1).vs2013中的EntityFramework不能识别odp11,所以在用ef的时候 ,要换vs2012 (2).opd12不能识别Oracle 9i(所以这个 ...
- linux下查看进程状态
1.查看进程的启动时间和执行时间 使用 ps 命令 :#ps -A -opid,stime,etime,args $ ps -A -opid,stime,etime,args PID STIME EL ...
- WebView---Android与js交互实例
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true 原文地址:http://blog.csdn.net/it10 ...
- windows下无法创建django工程的问题
环境:python2.7 django1.7 安装好django后,将C:\Python27\Lib\site-packages\Django-1.7.7-py2.7.egg\django\bin; ...
- Question Of Rabbit
题目描述 f(n) = GCD(1, n) + GCD(2, n) + GCD(3, n) + ~ ~ ~ + GCD(n - 1, n). 输入 每行一个整数N (1 < N < 400 ...
- PID算法学习记录
最近做项目需要用到PID算法,这个本来是我的专业(控制理论与控制工程),可是我好像是把这个东西全部还给老师了. 没办法,只好抽时间来学习了. 先占个座,后续将持续更新!
- 回文数组(Rotate Array (JS))
旋转一个数组. function rotate(array,n){ var l =array.length,a=array.map(function(x){return x}),arr=[]; n=n ...
- 0909 a newbeginning
操作系统无意是所有计算机系各专业的基础,如果不懂这门课程的知识,大学四年计算机可以说是白读了. 这学期很荣幸能上MISSDU的操作系统,我也希望能学到关于操作系统的知识,以至于丰富自己的专业知识. 下 ...
- GPU渲染和GDI
要实现这样一段逻辑,用GPU画3D图,用GDI画二维图元,怎么样效率高.相传Vista年代,是这样干的: 硬件渲染的东西在GPU上做完 读回CPU端 把GDI这些用软件渲染 两者混合 拷贝到显存显示 ...