最近因调试问题,需要一直进行tcpcopy,拿有问题的包进行测试。决定使用tcpcopy对录制脚本进行回放,以下为我操作的具体步骤。主要是三块

1 下载安装具有离线回放功能的tcpcopy

2 使用tcpdump进行脚本录制

3 回放离线文件

一 tcpcopy下载安装

原微博里说0.98版本以上即可支持离线回放功能。保险起见,我下载了最新的即1.0.0版本的tcpcopy和intercept来测试离线回放。

tcpcopy的git路径:https://github.com/wangbin579/tcpcopy

intercept的git路径:https://github.com/wangbin579/intercept

分别上传到对应的服务器和客户端,进行安装

tcpcopy安装步骤:

1 上传至路径/opt/soft,并解压 tar -xzvf tcpcopy-1.0.0.tar.gz
2 cd /opt/soft/tcpcopy-1.0.0/进入路径,执行./configure --offline(若不能执行成功,则使用./configure --help进行查看)
3 make
4 make install

intercept安装步骤:

1 上传至路径/opt/soft,并解压 tar -xzvf intercept-1.0.0.tar.gz
2 cd /opt/soft/intercept-1.0.0/进入路径,执行./configure --offline(若不能执行成功,则使用./configure --offline进行查看)
3 make
4 make install

问题1 :“can't find pcap.h”(网卡流量监控软件),需要安装libpcap-devel。

1 yum list libpcap-devel*查到到对应的lib包名称
2 yum install libpcap-devel.x86_64

二 使用tcpdump录制pcap离线文件

tcpdump -i eth0 -w online.pcap tcp and port 80

-i eth0:eth0为网卡,获取方式可在liunx系统下执行ifconfig查看所有的网卡,选取需要的那个。
-w online.pcap:为获取pcap文件进行回放,可设置路径,e.g. -w /home/user/test.pcap
tcp and port 80:截获端口为80的tcp请求,也可添加udp请求,和更改服务端口80,e.g. tcp and port 16001
-s 0:默认的话,tcpdump只显示部分数据包,-s snaplen是控制包长度的,默认是68字节,-s 0 则为全部字节,在使用过程中,如果添加-s则回放时会出现错误。可不使用该参数

三 回放

1 whereis tcpcopy,可在/usr/local/tcpcopy/sbin下发现tcpcopy命令
2 ./tcpcopy -x 16001-服务器ip:16001 -s 服务器ip -i /home/user/test.pcap
3 服务端抓包测试:tcpdump -n port 16001

【Tcpcopy】离线回放功能的更多相关文章

  1. tcpcopy + tcpdump 离线回放

    简单来说,就是用tcpdump记录线上请求,用tcpcopy来重放,如下图所示:   有关 tcpdump 的命令详解请参考: http://www.cnblogs.com/ggjucheng/arc ...

  2. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.2,增加离线消息、离线文件功能(源码)

    (几句题外话:虽然就如何将GG发展为一个有商业价值的产品,我还没有很清晰明确的思路,但是从GG发布以来,通过GG认识了一些朋友,也接了一些小单子,赚了一点小钱.有了一点甜头,目前和2.3个好朋友一起做 ...

  3. HTML5 的 applicationCache 应用程序缓存离线存储功能与 manifest 文件

    一. 实现 HTML5 applicationCache 的步骤 一般的操作步骤 1. 新建 manifest 文件 如文件名为  lzwme.manifest,内容配置参考如下: 01 CACHE ...

  4. 用Hopper搞定Mac迅雷的会员以及离线下载功能

    转自 用Hopper搞定Mac迅雷的会员以及离线下载功能 先定位Mac迅雷的可执行文件 snakeninnys-iMac:~ snakeninny$ ls /Applications/Thunder. ...

  5. 如何使用JS来开发室内三维地图的轨迹回放功能

     在制作完成室内三维地图的功能后,最经常有的需求就是如何做人员的轨迹回放,一般流程都是从数据库中查询轨迹坐标后,经过后台查询接口返回给前端,接下来的事情都交给JS来完成. 如果想做好一个性能好的轨迹回 ...

  6. Fiddler插件开发 - 实现网站离线浏览功能

    有这么一种应用场景: 你是做前端或APP开发的,需要调用服务端提供的接口,接口只能在公司内网访问:在公司外就无法调试代码了. 想在公司外访问怎么办呢? 如果在公司的时候将所有接口的响应内容都保存起来, ...

  7. 百度语音识别demo:去掉离线识别功能

    如果离线识别功能不是必须的,则为了减小包体积,可按下面方法将官方demo中的离线功能去掉: 1,删除loadOfflineEngine调用.2,删除data和license文件夹. 如此可使包体积减少 ...

  8. EasyPlayerPro Windows播放器实时流进行本地缓冲区即时回放功能实现

    背景描述 参照国内视频监控行业监控软件,实现当前视频的即时回放功能,例如: 监控人员发现刚刚的某个视频点有可疑,就像录像回放一样,想倒回去看一下,但又不想切换到录像回放界面, 此处就体现即时回放的价值 ...

  9. 如何实现LBS轨迹回放功能?含多平台实现代码

    本篇文章告诉您,如何实现轨迹回放.并且提供了web端,iOS端,Android端3个平台的轨迹回放代码.拷贝后可以直接使用.另外,文末有小彩蛋,算是开发者的福利. Web端/JavaScript 实现 ...

随机推荐

  1. python logging 日志轮转文件不删除问题

    前言 最近在维护项目的python项目代码,项目使用了 python 的日志模块 logging, 设定了保存的日志数目, 不过没有生效,还要通过contab定时清理数据. 分析 项目使用了 logg ...

  2. MyBatis对不同数据库的主键生成策略

    本文转自:http://289972458.iteye.com/blog/1001851  http://hi.baidu.com/zim_it/blog/item/8a2bd11205f5b56ec ...

  3. python学习笔记11(函数二): 参数的传递、变量的作用域

    一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...

  4. 山东省第四届ACM大学生程序设计竞赛解题报告(部分)

    2013年"浪潮杯"山东省第四届ACM大学生程序设计竞赛排名:http://acm.upc.edu.cn/ranklist/ 一.第J题坑爹大水题,模拟一下就行了 J:Contes ...

  5. 远程登陆MS azure Linux 虚拟机

    http://blogs.technet.com/b/uktechnet/archive/2013/11/12/running-a-remote-desktop-on-a-windows-azure- ...

  6. 错误:[将截断字符串或二进制数据。\r\n语句已终止。]

    错误:[将截断字符串或二进制数据.\r\n语句已终止.] 解决方法是将数据库表这列的长度调大一点

  7. Linux rm命令

    rm可以用来删除文件和文件夹.  rm --help Usage: rm [OPTION]... FILE... Remove (unlink) the FILE(s).   -f, --force ...

  8. gcc,g++,extern “C” :一些编译错误的缘由

    正好是我们代码中遇到的问题,之前不求甚解,只用g++编译没有错误就不管了,现在要跨平台到windows下就遇到了问题.全文转载自:http://user.qzone.qq.com/75172588/b ...

  9. android 使用Activity做窗口弹出(模拟Dialog)

    我们下面使用Activity,模拟一个dialog: 首先看布局: <?xml version="1.0" encoding="utf-8"?> & ...

  10. Django用户认证系统(三)组与权限

    Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyTo ...