开发者社区> 问答> 正文

Linux上从命令行嗅探HTTP流量

和大家分享一个工具,可以在linux环境下可以在网卡上直接监听所有的http 流量
这款工具名称叫做httpry
闲话少说

一,安装方法
debian/ubuntu系统
1 apt-get install gcc make git libpcap0.8-dev  
2 git clone https://github.com/jbittel/httpry.git  
3 cd httpry  
4 make  
5 make install

redhat/centos
可以先以 yum install httpry方式尝试安装,如果源库不存在,再以下列方式安装
yum install gcc make git libpcap-devel  
git clone https://github.com/jbittel/httpry.git  
cd httpry  
make  
make install
安装成功后,httpry是直接写入环境/usr/sbin路径下的,所以可以直接运行

二,使用方法

httpry -i <network-interface>   : network-interface = eth1(外网卡)/ eth0(内网卡) 默认情况下只监听80端口



不过在大多数情况下,由于大量数据包进进出出,你会看到快速滚动的输出结果。所以,你应该保存已捕获的HTTP数据包以便离线分析。为此,使用“-b”或“-o”选项。“-b”选项让你可以将原始的HTTP数据包保存到二进制文件中,然后可以使用httpry回放HTTP数据包。另一方面,“-o”选项将httpry人类可读的输出结果保存到文本文件中。

想把原始的HTTP数据包保存到二进制文件中:
httpry -i eth1 -b output.dump
回放已保存的HTTP数据包:
httpry -r output.dump

想将httpry的输出结果保存到文本文件中:
httpry -i eth1 -o output.txt

如果你只想监视特定的HTTP方法(比如GET、POST、PUT、HEAD和CONNECT等),可以使用“-m”选项
httpry -i eth1 -m get,head



三,高级玩法
下载了httpry的源代码,也即前面使用git clone https://github.com/jbittel/httpry.git   下载到本地的httpry目录,该源码目录中有一系列有助于分析httpry输出结果的Perl脚本。这些脚本位于httpry/scripts/plugins目录中,可以使用这些perl“插件”文件对访问进行分析
使用perl 这些插件的前提是,先使用httpr “-o”选项运行httpry一段时间获得了输出文件,再使用下面这个命令,运行一次脚本
$ cd httpry/scripts  
$ perl parse_log.pl -d ./plugins <httpry-output-file>    : <httpry-output-file> 即为 -o 选项运行后输入的文件名

在用parse_log.pl 完成之后,你会在httpry/scripts目录下看到许多分析结果(*.txt/xml)。比如说,log_summary.txt看起来就像下面这样:


还有hostname.txt  common.txt
运行一次parse_log.pl后 会生成很多分析文件,可以基于这些文件对网站目前的访问做分析



还有其他用途,大家可以一块摸索



另外还有一款神器  ngxtop  它可以通过分析 Nginx 或者其他的日志文件,使用类似 top 命令的界面实时展示出来的
具体说明可以查看下
http://os.51cto.com/art/201406/442749.htm
这个甚至可以用来分析apache的日志

祝大家玩的开心!







展开
收起
xuyuan.xy 2014-11-07 10:41:43 11830 0
2 条回答
写回答
取消 提交回答
  • te
    ReLinux上从命令行嗅探HTTP流量
      
    2014-12-27 23:01:43
    赞同 展开评论 打赏
  • 不错
    2014-11-07 10:51:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载