转自:  http://www.rwifeng.com/jekyll/update/2015/04/16/how-to-tcpflow/

tcpflow 抓包

Apr 16, 2015

大家都知道 tcpdump 是一个很方便的抓包工具, 但是 tcpdump 是以包为单位进行输出的,阅读起来不是很方便。 而 tcpflow 是面向 TCP 流的,每个 TCP 传输会保存成一个文件。所以一个典型的 TCP 会话会产生两个文件,每个方向产生一个文件。 此外, tcpflow 还可以解析 tcpdump 保存的文件。

先看一个小例子。在我的 Mac 上有一个 HTTP 服务,所用端口号为 12345,那么用 tcpflow 抓包结果如下:

可以看到,tcpflow 直观地显示出了请求、响应的 HTTP 报文,具有很好的可读性。

安装

具体可以参考: tcpflow github

简单使用

具体的使用方法,可以去查应用手册 man tcpflow. 下面介绍几种简单的使用方法。

  • 打印经过网卡的所有报文

在你的 terminal 中输入:

tcpflow -ci en0

其中 -c 表示将报文直接打印在 terminal 中。不指定 -c 参数会将抓取的 TCP 报文保存在文件中。 -i 表示你要监听的网络端口。 假如你不指定 -c 参数, tcpflow 会将每个 TCP 流的数据存储在他自己的文件中,其中文件的命名规则你可以参考: tcpflow
github
 . 基本格式为:

[timestampT]sourceip.sourceport-destip.destport[--VLAN][cNNNN]
  • 读取已有的 pcap 文件

在使用 tcpdump, 或者 wireshark 抓得包的格式是 pcap。 使用 tcpflow 也可以读取这些包得格式。 这儿有一个我使用 tcpdump 抓的包的格式: tcpdump
pcap

tcpflow -cr test.pcap

可以将 pcap 包打印到 terminal 中。当然你也可以将 TCP 流保存在文件中:

tcpflow -r test.pcap

# 这样我得到了两个文件:
# 183.136.139.016.00080-192.168.199.146.49570
# 192.168.199.146.49570-183.136.139.016.00080

其中文件  192.168.199.146.49570-183.136.139.016.00080 是我的主机向服务器发送的请求包。文件 183.136.139.016.00080-192.168.199.146.49570 是服务器向客户端返回的响应包。如果你想要重放下请求,就可以使用这种方法。

nc -i 1 183.136.139.16 80 < 192.168.199.146.49570-183.136.139.016.00080
  • 使用表达式过滤抓包

tcpflow 也是支持表达式过滤的,格式和 tcpdump 一样,具体格式和对应参数你可以参考 filter expression 。 这里列几种常用的表达式:

# 过滤经过 192.168.1.202 的流量:
tcpflow -i any host 192.168.1.202 # 过滤从主机 192.168.1.202 发出的流量:
tcpflow -i any src host 192.168.1.202 # 过滤从主机 192.168.1.202 发出的流量并且端口号为 80:
tcpflow -i any src host 192.168.1.202 and port 80 # 过滤固定端口的流量:
tcpflow -i en0 any port 443 or port 80 # 过滤主机 192.168.1.202 端口为 80 或 443 的流量:
tcpflow -i en0 'host 192.168.1.202 and (port 80 or port 443)' ...

[置顶] tcpflow 抓包的更多相关文章

  1. [置顶] android 心跳包的分析

    android 心跳的分析 最近在做一个项目中用到了心跳包的机制,其实就是传统的长连接.或许有的人知道消息推送的机制,消息推送也是一种长连接 ,是将数据有服务器端推送到客户端这边从而改变传统的“拉”的 ...

  2. 几种主流浏览器内置http抓包工具软件使用方法

    对于学习网站的人或者相关编程人员,经常需要用到http抓包工具来跟踪网页,但主流抓包软件如httpwatch.httpanalyzerstdv都是收费的,破解版往往也不稳定.实际上现在很多浏览器都内置 ...

  3. 几种主流浏览器内置http抓包工具软件使用方

    对于学习网站的人或者相关编程人员,经常需要用到http抓包工具来跟踪网页,但主流抓包软件如httpwatch.httpanalyzerstdv都是收费的,破解版往往也不稳定.实际上现在很多浏览器都内置 ...

  4. 真机远程页面调试工具spy-debugger 3.x:集成weinre+AnyProxy,页面调试+抓包。调试生产HTTPS页面。

    .页面调试+抓包 2.操作简单 3.支持HTTPS. 4.spy-debugger内部集成了weinre.node-mitmproxy.AnyProxy. 5.自动忽略原生App发起的https请求, ...

  5. 浏览器内置http抓包工具软件

    使用 360极速浏览器抓取HTTP的 请求头 与 响应头: *** 从 工具--->开发人员工具(F12) 或者 直接按下 F12键,打开抓包工具: **** 按下F5刷新: 双击其中的 Nam ...

  6. 【bb平台刷课记】wireshark结合实例学抓包

    [bb平台刷课记]wireshark结合实例学抓包 背景:本校形势与政策课程课需要在网上观看视频的方式来修得学分,视频网页自带"播放器不可快进+离开窗口自动暂停+看完一集解锁下一集(即不能同 ...

  7. Fiddler 抓包工具总结

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...

  8. charles抓包工具分享

    今天,给大组内QA做了一次分享,主要面向移动端测试,介绍了我平时在测试工作中用到的功能,大家都积极响应,现场搭环境,现场操作,现场提问解答,最后大家都成功的利用起来了,感觉很有成就感.下面介绍我今天分 ...

  9. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

随机推荐

  1. mybatis sql语句#{}和${}区别联系

    1.说白了就是,#{}用于引用字符变量,如varchar,string.因为sql语句执行过程中要给string varchar加‘’来执行. 2.${}用来引用int型等不需要添加单引号的值 3.具 ...

  2. ubuntu上java的运行环境jre的安装

    如何在Ubuntu 14.04上面安装 java的运行环境 jre 呢,下面直接采用到 oracle 的java 官网下载  对应的 jre 的tar.gz的包 从 root用户切换到 saynoer ...

  3. crmjs区分窗口是否是高速编辑(2)

    随着crm的版本号不同,有些功能不能使用,这里提供了第二种写法: function loadFrom() {     var formType = Xrm.Page.ui.getFormType(); ...

  4. poj 3461 字符串单串匹配--KMP或者字符串HASH

    http://poj.org/problem?id=3461 先来一发KMP算法: #include <cstdio> #include <cstring> #include ...

  5. Codeforces Round #330 (Div. 2) D. Max and Bike 二分

    D. Max and Bike For months Maxim has been coming to work on his favorite bicycle. And quite recently ...

  6. linux下如何使用sftp命令进行文件上传和下载

    sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性.下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作. 举例,如远程主机的 IP ...

  7. myeclipse视图布局恢复

    使用Windows 菜单下的 Reset Perspective

  8. Spring Boot (18) @Async异步

    通常我们在某网站发送邮件验证码时,首先会提示验证码已发送,然而此时可能没有收到验证码,过几秒种才真正的收到.如果是同步会先验证发送是否成功然后再通知,如果是异步可以先通知用户已发送,并释放请求,然后再 ...

  9. 2018.10.9 上线发现elasticsearch写入速度超级慢,原来罪魁祸首是阿里云服务的OSS的锅

    问题描述: 按照项目计划,今天上线部署日志系统(收集线上的所有日志,便于问题排查). 运维按照以前的部署过程,部署elasticsearch,部署结束之后,通过x-pack的monitor发现elas ...

  10. 5.26 Quartz任务调度图解2