首页 > 代码库 > 如何在Linux下使用命令行嗅探HTTP流量
如何在Linux下使用命令行嗅探HTTP流量
通常我们在调试Web应用、RESTFUL服务或者排错PAC (proxy auto config) 以及检查是否有恶意访问等会去通过错误日志日志或者嗅探数据包的方式去排错;常见的嗅探数据包软件有tcpdump、wireshark;但是针对HTTP需要对数据包进行过滤,显示格式也更不容易读,Httpry工具就能更方便易读的嗅探HTTP流量
安装httpry
基于Debian(Ubuntu or Linux Mint),基础库并没有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 or RHEL可以使用EPEL来yum安装
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
instal
|
httpry的基本使用
httpry通过监听网卡接口来实时嗅探HTTP的请求和响应
1
|
$
sudo
httpry
-
i
<
network
-
interface
>
|
将HTTP 数据包保存为二进制文件
1
|
$
sudo
httpry
-
i
eth0
-
b
output
.
dump
|
重放HTTP数据包
1
|
$
sudo
httpry
-
r
output
.
dump
|
将HTTP 数据包保存为文本文件
1
|
$
sudo
httpry
-
i
eth0
-
o
output
.
txt
|
httpry的高级应用
监控特定的HTTP请求方式(GET,POST,PUT,HEAD,CONNECT等),使用-m参数
如果你httpry下载的源代码,你会发现有一组Perl脚本的源代码,帮助分析httpry的输出
这些脚本httpry /scripts/plugins目录中找到。如果你想编写一个自定义解析器httpry的输出,这些脚本是很好的例子.他们的一些功能:
- hostnames: 显示主机名列表.
- find_proxies:探测web代理
- search_terms:查找在搜索服务里面的搜索词.
- content_analysis: 发现uri包含特定的关键词
- xml_output: 转换为XML格式输出
- log_summary: 生成日志汇总
- db_dump: 日志文件数据转储到一个数据库中
1
2
|
$
cd
httpry
/
scripts
$
perl
parse_log
.
pl
-
d
.
/
plugins
<
httpry
-
output
-
file
>
|
执行之后httpry/scripts目录下生成txt/xml文件,例如log_summary.txt
相关工具 : ngxtop
参考文档:
http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html
http://dumpsterventures.com/jason/httpry/
http://www.ttlsa.com/nginx/nginx-modules-ngxtop-ttlsa/