4

我有一个使用 TCP 连接到服务器并与之通信的程序。我现在想复制服务器发送给我的数据包并将它们重定向到另一个端口进行处理。因此我有两个问题:

1.) 在客户端上进行端口镜像,以便客户端端口上的任何流量都被复制到另一个端口,比如 X。

我也试过iptables了。因为我希望我的应用程序继续通信并且端口 X 只是一个被动嗅探器,所以我求助于-j TEE复制数据包。这里的问题是 TEE 只有一个--gateway标志,只允许将重复的数据包路由到另一台主机(注意我不能以这种方式将重复的数据包路由到本地主机,因为我已经在该端口将原始数据包发送到本地主机)。-j REDIRECT也尝试过,但它破坏了原来的 TCP 连接。那么我可以将数据包复制到同一台机器上的另一个端口的端口吗?

2.) 从端口 X 读取原始 TCP 数据包并处理它们。

现在在端口 XI 上想简单地读取 C++ 程序中的原始 TCP 数据包(不发送 SYN/ACK 等)。到目前为止,我一直在使用 tcpdump。我有一个模糊的知识,原始套接字可能对同样有用。那么我是否可以读取端口 X 上的流量然后处理 TCP 数据包?

4

0 回答 0