最近因調試問題,需要一直進行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 --offline進行查看) 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