主机 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 ![]() 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 |