1

我们编写了一个工具来代理 telnet 流量,并分叉入站/出站流以进行记录(这是一个测试遗留系统的测试工具)。然而,我们遇到了障碍。在某些情况下,遗留系统依赖于知道客户端的 IP 地址,但是当我们使用代理时,客户端的地址全部更改为代理的地址。由于我们控制遗留系统用作网关的机器,我想知道是否没有某种方法可以通过 iptables 或其他一些数据包处理技术来欺骗它。所以,换句话说,没有代理我们有:

[CLIENT A - 172.16.2.2]------|
[CLIENT B - 172.16.2.3]------|------------[SERVER sees CLIENT A as 172.16.2.2, B as 2.3, so on]
[CLIENT C - 172.16.2.4]------|

使用代理我们得到:

[CLIENT A - 172.16.2.2]---|
[CLIENT B - 172.16.2.3]---|---[PROXY 172.16.2.5]--[SERVER sees all clients as 172.16.2.5]
[CLIENT C - 172.16.2.4]---|

我们需要的:

[CLIENT A - 172.16.2.2]---|
[CLIENT B - 172.16.2.3]---|---[PROXY 172.16.2.5]--[SERVER sees CLIENT A as 172.16.2.2, so on]
[CLIENT C - 172.16.2.4]---|

有没有办法做到这一点?

谢谢!

4

3 回答 3

1

这个问题与编程无关。

但是您可以使用 Linux 内核工具 TPROXY 来做到这一点,我相信它是独立于 Linux 分发的。

TPROXY 让您透明地代理流量,使客户端和服务器看到自己的原始 IP 地址。你也可以做其他的技巧。

于 2009-03-25T13:30:34.667 回答
1

除了使用代理,您可以将网卡置于混杂模式并使用 tcpdump 或类似的东西来捕获正在发生的事情吗?

于 2009-03-25T13:30:49.283 回答
0

一些 NATing 怎么样:服务器真的需要查看客户端的确切 IP 还是只是唯一的 IP?如果没有,如何做:

172.16.88.2                     --- 172.16.2.2
172.16.88.3   ---  PROXY        --- 172.16.2.3   --- SERVER
172.16.88.4       w/ 3 IPs      --- 172.16.2.4
于 2009-03-25T13:34:28.700 回答