我们已经编写了一个代理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]---|
有没有办法实现这个目标?
谢谢!
答案 0 :(得分:1)
这个问题与编程无关。
但你可以使用Linux内核工具TPROXY来实现,我相信它是与Linux分开发布的。
TPROXY允许您透明地代理流量,使客户端和服务器看到自己的原始IP地址。你也可以做其他技巧。
答案 1 :(得分:1)
您是否可以将网卡置于混杂模式并使用tcpdump或类似功能来捕获正在发生的事情,而不是使用代理?
答案 2 :(得分: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