流量复制
HTTP流量复制
在主机层面常用的HTTP流量复制有nginx的mirror和gorelay两种,都可以实现流量复制、流量放大,操作简单。
nginx mirror模块 一种应用层的流量复制工具

goreplay 监听网络接口上的流量,实时流量复制

TCP流量复制
在主机层面常用的TCP流量复制有tcpcopy、iptables TEE
tcpcopy 复制TCP包修改 TCP/IP 头部信息发给测试机器,一个发送端TCPCopy和一个接收端intercept。

centos 6~7 modprobe ip_queue 可以运行,在Rocky Linux 8.8运行时modprobe: FATAL: Module ip_queue not found”的错误提示。这是因为Rocky Linux 8.8默认不支持ip_queue
模块。ip_queue
模块是用于Linux内核的旧版网络队列框架,它已被新的nfnetlink_queue
模块所取代。
加载nfnetlink_queue
模块运行
[root@web01-proxy ~]# modprobe nfnetlink_queue
在实际工作中tcpcopy完美契合需求,顺利实现复制某个TCP服务流量到另一个机器新起的TCP服务上,完成功能预览和测试。
iptables TEE

使用可以参考iptables目标TEE,在实际工作中受限于网络环境无法实现,参考iptables TEE使用注意事项
UDP流量复制
udpcopy It is an online UDP duplication tool and can be used for testing
A,B,C三台机器,安装依赖yum install libtool autoconf automake m4
A机器监听udp端口20021,[A-udpcopy]# nc -lu 20021
C机器监听udp端口20021,[C-udpcopy]# nc -lu 20021
A机器开启udpcopy,复制udp端口20021请求到C机器20021

B机器发送udp测试包,python3 test.py
import socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.sendto(b'Hello, UDP!', ('A机器IP', 20021))
data, addr = udp_socket.recvfrom(1024)
print(f'Received: {data.decode()} from {addr}')
udp_socket.close()


