主机 A 的 IP 是 1.1.1.1 主机 A 上传数据给服务器 B, B 会记录这些数据是主机 A 上传的,然后按数量给 A 发工资 +_+
问题是 A 到 B 之间很慢,想插入一个 C 机器,IP 是 2.2.2.2 但是如果直接在 C 上加个代理,A 走代理上传给 B,速度是快了,但是 B 认为数据是从 2.2.2.2 上传的了。 于是 A 没有工资了, 这肯定不行。
问题是: 有没有办法,让 B 仍然觉得数据是从 A 上传的呢?
在 C 上设置 iptables 貌似不行,也可能是我没弄对。。。
1
rrfeng 2018-10-11 12:10:04 +08:00 via Android
主要看 b 是怎么判断的。
跟上传的协议也相关 |
3
zn 2018-10-11 12:22:52 +08:00 via iPhone
难道不是先看看具体是怎么判断的吗?
|
4
azh7138m 2018-10-11 12:33:10 +08:00 via Android
C 一般叫做路由器
iptables 是可以的,C 一般要作为 B 的网关存在 |
7
azh7138m 2018-10-11 12:36:11 +08:00 via Android
如果是中转服务器的话,可以考虑使用 kcptun 这种东西做隧道
C 用作网关最好是 BC 可以物理链接的时候 |
10
whileFalse 2018-10-11 13:01:34 +08:00
你到底想干啥?
|
11
kongkongyzt 2018-10-11 13:16:25 +08:00
你需要在 C 上建立透明代理
|
12
google456 OP @azh7138m 没太理解 kcp 在我这个问题中有什么用。。。
1.KCP 不是双边的么? 我没法处理 B 啊。 2.另外好像 kcp 也只是加速,我引入 C 机器后 已经不需要加速了啊,目前问题是隐藏 C,让 B 觉得数据是直接从 A 上传的。给 A 记工资。 |
13
nbndco 2018-10-11 13:48:46 +08:00 via iPhone
不可能的,只要要想一想 B 如何发送数据给 C 就好了
|
14
google456 OP |
16
zhujinliang 2018-10-11 13:57:06 +08:00 via iPhone
可能你需要再加一个 D
让 C 对 A 冒充 B,让 D 对 B 冒充 A,至于 C 与 D 之间怎么说话都好办了 |
17
huamiao 2018-10-11 14:00:18 +08:00
如果 B 判断的依据是 A 的 ip,那只要把 C 的 ip 设置成 A 的就可以了呀,至于,A 和 B 怎么通讯,办法总是有的吧。
|
18
google456 OP |
20
akira 2018-10-11 14:07:23 +08:00
要看 B 是通过什么来识别数据来源 ,然后再根据这个来出方案
|
21
liuminghao233 2018-10-11 14:11:39 +08:00 via iPhone
不能
“让 B 觉得数据包仍然是从 A 上传的” 这种情况下 B 必然会把数据包直接回复给 A 然而你又说 “问题是 A 到 B 之间很慢” 所以 不能 |
22
huamiao 2018-10-11 14:13:57 +08:00
@google456 你先要有网络拓扑图,如果 A 直接是公网 IP,那在你这个层级也没辙吧。如果是你可控的网络,那么 C 设置成 A 的 IP,把 A、C 划入一个子网,让 A 连接 C (代理啥的)应该也可以达到目的。
|
23
ttghc 2018-10-11 14:16:39 +08:00
不应该先明确是网络层以下,还是网络层,还是应用层来识别身份的么?
|
24
azh7138m 2018-10-11 16:32:38 +08:00 via Android 1
A 跑 client C 跑 server 做一个简单的隧道
如果要对 B 透明,C 要作为 B 的网关存在,你是要修改 B 的配置的,如果 BC 不能物理链接的话,就很难做了 |
26
zjlletian 2018-10-11 17:47:31 +08:00
full-nat 了解一下?
|
28
030 2018-10-11 19:20:14 +08:00
为什么不行,你 A 和 B 是直接连着根网线的吗
|
29
xdz 2018-10-12 09:06:00 +08:00
如果就是看 ip 的,可以动 c 到 a 的路由,可以看看 tproxy
|