CentOS tcpflow抓包

在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
./configure
make
sudo 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

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native