tcpcopy 流量複製

依賴 libpcaphtml

 

線上服務器安裝python

https://github.com/session-replay-tools/tcpcopy.gitgit

下載後解壓github

#--pcap-capture 默認raw socket方式抓包,添加這個參數後改成pcap方式抓包,默認抓包方式不用加-F服務器

#--pcap-send 測試端獲取不到流量,iptables的問題,線上服務器又不容許修改時添加session

./configure --prefix=/usr/local/tcpcopy --pcap-capturesocket

make && make installtcp

 

輔助服務器安裝測試

https://github.com/session-replay-tools/intercept.gitspa

下載後解壓

./configure --prefix=/usr/local/intercept

make && make install

 

 

1.同網段環境

192.168.1.2 線上服務器

192.168.1.3 測試服務器(能夠將輔助服務安裝到測試服務上面)

192.168.1.4 輔助服務器

#啓動http服務

192.168.1.2 192.168.1.3

python -m SimpleHTTPServer 8055

#啓動輔助服務

192.168.1.4

/usr/local/intercept/sbin/intercept -i eth0 -F  'tcp and src port 8055' -d

192.168.1.2

#複製流量-c修改訪問的ip

/usr/local/tcpcopy/sbin/tcpcopy -F 'tcp and dst port 8055' -x 8055-192.168.1.3:8055 -s 192.168.1.4 -c 172.16.55.x -d

192.168.1.3

#靜態路由,將172.16.55的包所有轉到輔助服務器

route add -net 172.16.55.0 netmask 255.255.255.0 gw 192.168.1.4

 

 

2.跨網段

192.168.1.2 線上服務器

192.168.2.2 測試服務器(能夠將輔助服務安裝到測試服務上面)

#啓動http服務

192.168.1.2 192.168.2.2

python -m SimpleHTTPServer 8055

#啓動輔助服務

192.168.2.2

/usr/local/intercept/sbin/intercept -i eth0 -F  'tcp and src port 8055' -d

192.168.1.2

#複製流量-c 包裝爲tcpcopy服務器上的網段ip,不能是和192.168.2.2通信的ip,因此這裏包裝爲192.168.1.3

/usr/local/tcpcopy/sbin/tcpcopy -F 'tcp and dst port 8055' -x 8055-192.168.2.2:8055 -s 192.168.2.2 -c 192.168.1.3 -d

 

 

3.iptables問題又沒法修改,或者tcpcopy丟包、效率低

#注意這裏安裝時添加了--pcap-send

./configure --prefix=/usr/local/tcpcopy --pcap-capture --pcap-send #測試端獲取不到流量,iptables的問題,線上服務器又不容許修改時添加

make && make install

192.168.1.2 線上服務器

192.168.2.2 測試服務器(能夠將輔助服務安裝到測試服務上面)

#啓動http服務

192.168.1.2 192.168.2.2

python -m SimpleHTTPServer 8055

#啓動輔助服務

192.168.2.2

/usr/local/intercept/sbin/intercept -i eth0 -F  'tcp and src port 8055' -d

192.168.1.2

#複製流量-c 包裝爲tcpcopy服務器上的網段ip,不能是和192.168.2.2通信的ip,因此這裏包裝爲192.168.1.3

#/usr/local/tcpcopy/sbin/tcpcopy -x 線上服務器端口@線上服務器MAC-測試服務器IP:測試服務器端口@線上服務器到測試服務器的下一跳MAC(同網段則是測試服務器MAC,不一樣網段則是線上服務器下一跳MAC) -o 與測試服務器通信的接口 -c 包裝的IP -s 輔助服務器IP -d

/usr/local/tcpcopy/sbin/tcpcopy -F 'tcp and dst port 8055' -x 8055@00:A3:81:CC:88:BD-192.168.2.2:8055@00:B3:A1:AC:C8:BA -o eth0 -c 192.168.1.3  -s 192.168.2.2 -d

 

dst是destination的縮寫,表目的
src是source的縮寫,表源

tcpcopy與intercept的-F寫法與tcpdump的過濾方式同樣

 

 

#參考#https://www.cnblogs.com/phennry/p/6382755.html?utm_source=itdadao&utm_medium=referral#https://github.com/session-replay-tools/tcpcopy/issues/173#https://blog.csdn.net/wangbin579/article/details/10148247

相關文章
相關標籤/搜索