CentOS tcpflow抓包

来源:互联网 发布:windows 桌面管理 编辑:程序博客网 时间:2024/05/17 02:18

在Mac上抓包常用Charles,在linux服务器上抓包,比较常用tcpdump,tcpflow命令,tcpdump对http包的抓取支持不好,tcpflow的http的抓取表现不错。tcpdump是按照包为单位进行输出的,阅读起来不是很方便。 而tcpflow是面向tcp流的。 每个tcp传输会保存成一个文件,所以一个tcp会话会产生两个文件,每个方向产生一个文件。

安装

  • 安装前,先确保已安装下面的依赖,若没可以再安装下
yum -y install git gcc-c++ automake autoconf boost-devel cairo-devel libpcap-devel zlib-devel
  • 编译安装tcpflow
    下载地址 http://digitalcorpora.org/downloads/tcpflow/
./configuremakesudo make install

但是由于boost版本过低报了下面这个错误:

configure: error:tcpflow requires a version of Boost that has Boost interval_map and interval_set.Your version is too old! Please install a current version of Boost from http://www.boost.org/users/download/.Try these commands:  wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.53.0%2F&ts=1362359340&use_mirror=hivelocity  tar xfz boost_1_53_0.tar.gz  cd boost_1_53_0  sh bootstrap.sh  ./b2  sudo ./b2 install... and then re-run configure!

按照上面的提示下载boost新版本安装后,重写编译安装tcpflow即可。

使用

tcpflow和tcpdump的命令有些类似

man tcpflow   //查看使用手册tcpflow -i eth0 host 'ip' //使用该命令最好在一个空的文件夹下,因为抓包产生的文件会全部放在当前目录下,文件中的内容和浏览器调试工具中看到的类似tcpflow -ci eth0 'src host ip'    // 抓该主机发送的包  -c是打印出来,不保存文件中tcpflow -i eth0 'dst host ip'    //抓取该ip主机接收的包tcpflow -i eth0 'port 80 and src host ip'   //监听该主机通过80端口发送的数据包

Charles手机端抓包

  1. 查看电脑ip
  2. 打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,端口填8888

然后操作手机就可以看到抓包信息了,其实就是用Charles来做手机的HTTP代理,所以关闭Charles后,记着也要关闭手机的代理设置。

Mac 系统抓包,打开Charles,在菜单中勾选Proxy–>Mac OS X proxy 即可

[参考]
tcpflow github
Linux系统抓包-tcpdump与tcpflow

1 0