Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,可是有时候因为客户端开发人员(多是第三方)知识欠缺或者其它一些缘由,没法顺利的在客户端进行抓包分析,这种状况下怎么办呢?git

本文中,咱们将给你们介绍在服务端进行抓包分析的方法,使用tcpdump抓包,配合Wireshark对HTTP请求进行分析,很是简单有效。github

本文将会持续修正和更新,最新内容请参考个人 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me服务器

使用tcpdump在服务器抓包

在服务端进行抓包分析,使用tcpdump网络

tcpdump -tttt -s0 -X -vv tcp port 8080 -w captcha.cap

这里的参数是这样的tcp

  • -tttt 输出最大程度可读的时间戳
  • -s0 指定每个包捕获的长度,单位是byte,使用-s0能够捕获整个包的内容
  • -X 以hex和ASCII两种形式显示包的内容
  • -vv 显示更加多的包信息
  • tcp 指咱们只捕获tcp流量
  • port 8080 指咱们只捕获端口8080的流量
  • -w captcha.cap 指定捕获的流量结果输出到captcha.cap文件,便于分析使用

关于tcpdump更加高级的用法,能够参考 tcpdump简明教程工具

上述命令会保持运行,并将结果输出到 captcha.cap 文件中,在这个过程当中,全部访问 8080 端口的 TCP 流量都会被捕获。当请求结束以后,咱们可使用 Ctrl+C 中断该命令的执行,这时候在当前目录下就能够看到生成了一个名为 captcha.cap 的文件。.net

使用Wireshark分析

接下来咱们从服务器上下载这个captcha.cap文件到本身电脑上,使用 Wireshark 打开code

最简单的下载方法固然是使用scp了教程

scp account[@ip](https://my.oschina.net/u/3749391):/path/to/captcha.cap .

由于咱们须要分析http包,直接打开看显然没法区分咱们须要的内容,所以,能够在filter栏中添加过滤规则 http,这样就能够只展现http流量了ip

当请求比较多的时候,咱们仍是没法快速区分出哪一个是指定客户端的访问请求,好在强大的filter能够组合使用

http and ip.src == 192.168.0.65

上面这个filter将会过滤出全部来自客户端 192.168.0.65 的http流量。

找到咱们须要分析的http请求了,那么怎么查看请求响应的内容呢?也很简单,只须要选中这个请求,右键 Follow - HTTP Stream

在新开的窗口中,咱们就能够看到这个请求的全部内容了

总结

tcpdump和wireshark都是很是强大的网络分析工具,其使用用途不单单局限于http请求抓包,借助这两个工具,咱们能够对全部的网络流量,网络协议进行分析。本文只是针对最多见的http请求抓包方法作了一个简单的讲解,实际上配合wireshark强大的filter规则,咱们能够更加精准的对流量进行过滤,分析。

本文将会持续修正和更新,最新内容请参考个人 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me

相关文章
相关标签/搜索