tcpreplay 是一种 pcap 包的重放工具,它可以将用 ethreal、wireshark 工具抓下来的包原样或经过任意修改后重放回去。它允许你对报文做任意的修改(主要是指对 2 层、3 层、4 层报文头),指定重放报文的速度等,这样 tcpreplay 就可以用来复现抓包的情景以定位 bug,以极快的速度重放从而实现压力测试。
语法格式:tcpreplay [参数] [文件]
常用参数:
-A | -vA “nnt”表示以 tcpdump 风格输出报文信息,并且不打印时间戳、主机名、端口服务名称。注意不要使用-c 参数来指定打印的数据报文的个数,这样发送出去的报文也会变少 |
-c | 双网卡回放报文必选参数,后面紧跟 cache 文件名,该文件为 tcpprep 根据对应的 pcap 文件构造出来 |
-i | 双网卡回放报文必选参数,指定主接口 |
-K | 重写从网卡发送报文的源 MAC 地址 |
-O | 没有测试使用 |
参考实例
将 http://ftp.pcap 文件进行 tcpprep 操作,制作 cache 文件:
[root@xtuos.com ~]# tcpprep -an client -i ftp.pcap -o ftp.cache –v
重放 tftp 服务器上抓到的报文 * a、在 tftp 服务器上使用 ethereal 抓包,存为 tftp.pcap 文件。 b、将 pcap 文件进行 tcpprep 的操作,制作 cache 文件:
[root@xtuos.com ~]# tcpreplay -c ftp.cache -i eth0 -j eth1 ftp.pcap -R –v