和大家分享一个工具,可以在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的日志
祝大家玩的开心!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。