我有一个带有两个网络适配器的系统。其中一个网络适配器连接到端口镜像,因此它可以看到网络中的所有流量。我想嗅探该连接以查找具有特定端口号的某个 TCP 连接,并使用第二个网络适配器将该连接的所有数据转发到 TCP 服务器。
到目前为止我已经尝试过:
- 用于
socat
侦听某个端口并将其分叉到另一个端口。当直接与正在侦听的端口建立 TCP 连接时,此方法有效socat
,但我不知道如何用嗅探连接的输入来替换它。 tcpdump
嗅探所有数据。但是,我不确定如何将这些数据转发到不同的 TCP 连接。
任何帮助将非常感激!
答案1
听起来您正在寻找的是端口转发。
您可以尝试这样的方法。
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 1111 -j DNAT --to x.x.x.x:2222
iptables -A FORWARD -p tcp -d x.x.x.x --dport 2222 -j ACCEPT
上述示例将把 eth0 端口 1111 上接收的所有入口流量转发到端口 2222 上的 IPv4 地址 xxxx。