linux 下如何抓取HTTP流量包

标签: web应用 http httpry | 发表时间:2014-09-05 10:19 | 作者:默北
出处:http://www.ttlsa.com
基于某些原因你需要嗅探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请求与响应的包 httpry-1 在大多数情况下,输出滚动非常快的,需要保存捕获的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-2 如果你下载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看起来像下面这样: httpry-3

相关 [linux http 流量] 推荐:

linux 下如何抓取HTTP流量包

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

Linux「真」全局 HTTP 代理方案

- - 依云's Blog
本文来自 依云's Blog,转载请注明. 看到 ArchWiki 上 GoAgent 条目的 亚全局代理方案,只是设置了代理相关环境变量. 我就想,为什么不实现一个真正的全局 HTTP 代理呢. 最终,答案是:Linux 太灵活了,以至于想写一个脚本来搞定很麻烦. 不过方案如下,有兴趣的可以折腾折腾.

linux 查看流量

- - 开源软件 - ITeye博客
在Linux下怎么看网络流量. 在Windows下,我们可以很方便的通过360来查看网络流量,知道哪个进程占用的网络带宽比较多. 那在Linux下怎么看流量呢,对于Web服务器来说这是很重要的. 下面这边博客很仔细的介绍了Linux下看流量的方法:. Linux 各种查看网卡流量的方法  http://jasonyong.blog.51cto.com/47753/174197.

使用 Wireshark 调试 HTTP/2 流量

- - JerryQu 的小站
我们知道,HTTP/2 引入了二进制分帧层(Binary Framing),将每个请求和响应分割成为更小的帧,并对它们进行了二进制编码. 与此同时,HTTP/2 沿用了之前 HTTP 版本中的绝大部分语义,上层应用基本上感知不到 HTTP/2 的存在,这一点可以通过浏览器的网络调试工具得到验证. 以下是使用 Chrome 访问 HTTP/2 网站的截图,网络面板中显示的内容与 HTTP/1 网站相比,只有一些细微的区别(头部字段都是小写,多了一些冒号开头的头部等).

Linux下用C实现Ping监测与HTTP报文上传

- - CSDN博客系统运维推荐文章
     有一个数据中心监测项目,命名为CPing,它的主要原理通过WEB进行前台统一配置管理,后台定期对数据中心相关设备执行Ping操作,并将结果及时写入到数据库.   该项目基于Linux平台部署,前端开发语言采用PHP,后台开发语言采用C,由于考量到项目的部署简洁性,后台开发的守护进程尽量不直接操作数据库,而是将需要写入的数据以HTTP的形式发送给PHP的WEB页面,由PHP完成写入操作.

linux高可用集群heartbeat实现http的高可用

- - CSDN博客系统运维推荐文章
    linux高可用集群的种类很多,比如常见的heartbeat,corosync,rhcs,keepalived,这些集群软件的出现为我们的业务生产环境提供了高可用的保证,本文将简单介绍一下用heartbeat的v2版本来处理一个简单的http高可用集群的搭建.     在实现http高可用集群之前,首先至少需要2台主机,并且需要做3点基本的准备工作:.

linux下查看http 并发和 tcp连接数

- - 操作系统 - ITeye博客
linux查看httpd进程数. 查看Apache的并发请求数及其TCP连接状态. (这条语句是从新浪互动社区事业部技术总监王老大那儿获得的,非常不错). 其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数.

Oceanus:美团HTTP流量定制化路由的实践

- - 美团点评技术团队
Oceanus是美团基础架构部研发的统一HTTP服务治理框架,基于Nginx和ngx_lua扩展,主要提供服务注册与发现、动态负载均衡、可视化管理、定制化路由、安全反扒、session ID复用、熔断降级、一键截流和性能统计等功能. 本文主要讲述Oceanus如何通过策略抽象、查询、渲染和分组动态更新,实现HTTP请求的定制化路由.

linux下查看网卡实时流量工具

- caoxg - 开心平淡对待每一天。热爱生活
      nload是一个网络流量统计工具,当前版本为0.7.2. 下载地址:http://sourceforge.net/project/showfiles.php?group_id=35865. 安装目录自己定,安装十分简单,基本上不会出什么错误. 完成后就可以用来监测网卡流量了:. 默认第一行是网卡的名称及IP信息,使用键盘上的左右键可以切换网卡.

Linux流量监控工具 – iftop (最全面的iftop教程)

- 董玉伟 - 深度VPS
在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息. 查看网络状态可以使用netstat、nmap等工具. 若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop. iftop是类似于top的实时流量监控工具. 官方网站:http://www.ex-parrot.com/~pdw/iftop/.