linux 下如何抓取HTTP流量包(httpry)

linux 下如何抓取HTTP流量包(httpry)

2014年9月5日 默北

基于某些原因你需要嗅探HTTP Web流量(即HTTP请求和响应)。例如,你可能会测试Web服务器的性能,或者x奥uy调试Web应用程序或 RESTful服务 ,又或者试图解决PAC(代理自动配置)问题,或检查从网站上下载的任何恶意文件。甭管是什么原因,对于系统管理员,开发人员,甚至是最终用户,嗅探 HTTP流量是非常有帮助的。

数据包嗅探工具如tcpdump是普遍用于实时数据包转储,需要设定一些过滤规则,只捕获HTTP流量,即便如此,它的输出内容很难理解,需要一定 的协议基础知识。实时的Web服务器日志分析工具如ngxtop提供了可读的实时网络流量的痕迹,但仅适用于具有完全访问过的Web服务器的日志。

有没有一款功能强大且又只针对HTTP流量的工具呢?那就是httpry,HTTP数据包嗅探工具。捕获HTTP数据包,并显示可读格式的HTTP协议层面的内容。

安装httpry

在基于debian系统如Ubuntu,httpry没有包含在基础仓库中。

$ 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源

$ sudo yum install httpry

也可以源码编译

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

httpry基本用法

$ sudo httpry -i <network-interface>

httpry监听在指定的网卡下,实时捕获并显示HTTP请求与响应的包

在大多数情况下,输出滚动非常快的,需要保存捕获的HTTP数据包进行离线分析。可以使用-b或-o选项。“-b”选项将原始的HTTP数据包保存到一个二进制文件,然后可以用httpry进行重播。 “-o”选项保存可读的输出到文本文件。

保存到二进制文件中:

$ sudo httpry -i eth0 -b output.dump

重放:

$ httpry -r output.dump

保存到文本文件:

$ 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输出的定制解析器,这些脚本是个很好的例子。功能有:

  • hostname : 显示一些列唯一主机名
  • find_proxies:检测web代理
  • search_terms:查找并计算在搜索服务中输入搜索词
  • content_analysis:查找包含特定关键字的URI
  • xml_output:以xml格式输出
  • log_summary:生成日志摘要
  • db_dump:将日志转存到mysql数据库中

在使用这些脚本前,先使用’-o’选项运行一段时间。一旦得到输出,运行这些脚本分析:

$ 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)
本文地址: http://www.ttlsa.com/web/how-to-sniff-http-traffic-from-the-command-line-on-linux/

时间: 2024-11-09 17:40:45

linux 下如何抓取HTTP流量包(httpry)的相关文章

wireshark在windows下无法抓取localhost数据包

在调试SSL时要抓包,通过tcpview和minisniffer等工具明明看到tcp连接已经建立并开始收发数据了,但wireshark却总是无法抓到相应的数据包. 今天早上,HQ的高工告诉我“wireshark在windows下无法抓取localhost数据包”,得使用其他工具. http://stackoverflow.com/questions/5847168/wireshark-localhost-traffic-capture you can capture on the loopbac

wireshark抓取远程主机流量

    WireShark即能抓本地流量包,也可以抓取远程主机流量包[支持remote packet capture protocal(rpacapd)] 此篇讲解分别在基于Linux和Windows系统的主机上安装支持远程抓包的rpcapd服务,然后就可在本地电脑通过WireShark捕获远程主机流量了 一.Windows 上安装并启动rpcapd服务 (1)软件下载:https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe,双击安装即可 (2

linux下简单抓包分析

有时候会遇到一些问题需要我们来抓包分析,当手头又没有专业的抓包工具的时候,可以用tcpdump来替代一下(一般的发行版都自带这个工具) 比如我们要分析一下eth0接口下跟192.168.7.188 这个目的IP地址22端口的发包情况 tcpdump -i eth0 dst 192.168.7.188 and port 22 tcpdump -i eth0 dst 192.168.7.188 and port 22 tcpdump: verbose output suppressed, use -

在服务器上用Fiddler抓取HTTPS流量

转自:http://yoursunny.com/t/2011/FiddlerHTTPS/在服务器上用Fiddler抓取HTTPS流量 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常会设立或利用网络接口.为了调试对网络接口的使用,往往需要查看流入和流出网络接口的网络流量或数据包.“抓包工具”就是一类用于记录通过网络接口的数据的工具. 我们知道,网络协议是分层设计的,OSI模型将网络协议分为了7个层次.不同的抓包工具,可以在网络协议的不同层次上工作.常用的Wireshark就是一

Fiddler抓取https数据包

Wireshark和Fiddler的优缺点: ①Wireshark是一种在网络层上工作的抓包工具,不仅自带大量的协议分析器,而且可以通过编写Wireshark插件来识别自定义的协议.虽然Wireshark功能强大,但是却并不能解决所有的抓包问题,其原因在于:Wireshark工作在网络层:如果计算机配置了IPSec传输层加密,则在网络层的流量都已经被加密,什么也看不到.当今大量网络接口使用HTTPS加密,Wireshark不能抓取到HTTPS流量的明文内容. ②Fiddler工作在应用层上,作为

wireshark抓取OpenFlow数据包

在写SDN控制器应用或者改写控制器源码的时候,经常需要抓包,验证网络功能,以及流表的执行结果等等,wireshark是个很好的抓包分析包的网络工具,下面简介如何用wireshark软件抓取OpenFlow数据包 一. wireshark2.0.0 wireshark2.0.0直接内置了OpenFlow协议,只需要安装wireshark2.0.0即可. 在安装wireshark之前需要安装一些依赖包: sudo apt-get install bison flex libpcap-dev gcc

linux命令行抓取网页快照-(xvfb+CutyCapt)

目的: 在一台没有安装X-server的Debian服务器上实现命令行抓取网页快照 软件: xvfb(在命令行下实现对X-server的模拟,渲染图形进行缓存)-在没有安装X-Server的环境下提供图像渲染 CutyCapt(模拟浏览器对网页进行下载.HTML.css渲染.Javascript执行,并将最终渲染完成的网页进行快照)- 主力干将 Qt(CutyCapt是基于此框架开发的) 实践: 1.安装CutyCapt.Qt及相关软件包: 帮助 1 2 3 4 5 sudo apt-get i

Fiddler:在PC和移动设备上抓取HTTPS数据包

Fiddler是一个免费的Web调试代理,支持任何浏览器.系统以及平台.这个工具是进行Web和App网络开发的必备工具,戳此处下载. 根据Fiddler官网的描述,具有以下六大特点: Web调试 性能测试 HTTP/HTTPS流量记录 Web会话处理 安全测试 自定义扩展性 本文讨论的主要内容是如何设置Fiddler,使PC和移动设备上可以抓取HTTPS数据包. 首先,在菜单栏选择Tools->FiddlerOptions,切换到Connections选项卡 第二步,勾选允许远程连接,并设置一个

用C++实现网络编程,抓取网络数据包的实现方法和介绍

做过网管或协议分析的人一般都熟悉sniffer这个工具,它可以捕捉流经本地网卡的所有数据包.抓取网络数据包进行分析有很多用处,如分析网络是否有网络病毒等异常数据,通信协议的分析(数据链路层协议.IP.UDP.TCP.甚至各种应用层协议),敏感数据的捕捉等.下面我们就来看看在windows下如何实现数据包的捕获. 下面先对网络嗅探器的原理做简单介绍. 嗅探器设计原理 嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行.但是,