有没有办法在 A 主机和 B 服务器之间加入一个 C 机器,但是让 B 觉得数据包仍然是从 A 上传的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
google456
V2EX    问与答

有没有办法在 A 主机和 B 服务器之间加入一个 C 机器,但是让 B 觉得数据包仍然是从 A 上传的?

  •  
  •   google456 2018-10-11 12:08:15 +08:00 3285 次点击
    这是一个创建于 2558 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主机 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 貌似不行,也可能是我没弄对。。。

    29 条回复    2018-10-12 09:06:00 +08:00
    rrfeng
        1
    rrfeng  
       2018-10-11 12:10:04 +08:00 via Android
    主要看 b 是怎么判断的。
    跟上传的协议也相关
    google456
        2
    google456  
    OP
       2018-10-11 12:19:27 +08:00
    @rrfeng 能不能再详细说说,我没太明白。
    zn
        3
    zn  
       2018-10-11 12:22:52 +08:00 via iPhone
    难道不是先看看具体是怎么判断的吗?
    azh7138m
        4
    azh7138m  
       2018-10-11 12:33:10 +08:00 via Android
    C 一般叫做路由器
    iptables 是可以的,C 一般要作为 B 的网关存在
    google456
        5
    google456  
    OP
       2018-10-11 12:33:27 +08:00
    @zn 显然我是 A,B 是老板,我没法知道 B 服务器上的事情啊。。。
    google456
        6
    google456  
    OP
       2018-10-11 12:34:11 +08:00
    @azh7138m 能不能麻烦给个例子?
    azh7138m
        7
    azh7138m  
       2018-10-11 12:36:11 +08:00 via Android
    如果是中转服务器的话,可以考虑使用 kcptun 这种东西做隧道

    C 用作网关最好是 BC 可以物理链接的时候
    google456
        8
    google456  
    OP
       2018-10-11 12:44:34 +08:00
    @azh7138m 是需要在 B 上做什么设置吗? 我无法控制或改变 B 的, 我只能改动 A 和 C。
    azh7138m
        9
    azh7138m  
       2018-10-11 12:51:56 +08:00 via Android
    @google456 尝试下 kcptun 这种隧道的方案?
    whileFalse
        10
    whileFalse  
       2018-10-11 13:01:34 +08:00
    你到底想干啥?
    kongkongyzt
        11
    kongkongyzt  
       2018-10-11 13:16:25 +08:00
    你需要在 C 上建立透明代理
    google456
        12
    google456  
    OP
       2018-10-11 13:46:38 +08:00
    @azh7138m 没太理解 kcp 在我这个问题中有什么用。。。
    1.KCP 不是双边的么? 我没法处理 B 啊。
    2.另外好像 kcp 也只是加速,我引入 C 机器后 已经不需要加速了啊,目前问题是隐藏 C,让 B 觉得数据是直接从 A 上传的。给 A 记工资。
    nbndco
        13
    nbndco  
       2018-10-11 13:48:46 +08:00 via iPhone
    不可能的,只要要想一想 B 如何发送数据给 C 就好了
    google456
        14
    google456  
    OP
       2018-10-11 13:49:27 +08:00
    @kongkongyzt 挂透明代理访问 ip 检测网站,也显示代理的 IP,虽然也会记录原始 IP.

    但是主显示的还是代理 IP。

    我需要让 B 直接觉得我是 A,而不是把 A 和 C 同时记录下来。
    google456
        15
    google456  
    OP
       2018-10-11 13:56:29 +08:00
    @nbndco 是不是 tcp 握手协议啥的 对底层协议不太了解。
    zhujinliang
        16
    zhujinliang  
       2018-10-11 13:57:06 +08:00 via iPhone
    可能你需要再加一个 D
    让 C 对 A 冒充 B,让 D 对 B 冒充 A,至于 C 与 D 之间怎么说话都好办了
    huamiao
        17
    huamiao  
       2018-10-11 14:00:18 +08:00
    如果 B 判断的依据是 A 的 ip,那只要把 C 的 ip 设置成 A 的就可以了呀,至于,A 和 B 怎么通讯,办法总是有的吧。
    google456
        18
    google456  
    OP
       2018-10-11 14:05:35 +08:00
    @zhujinliang “让 D 对 B 冒充 A ” 那为什么不直接让 C 冒充 A 我的问题就解决了啊。

    关键是怎么样才能实现“冒充”?
    google456
        19
    google456  
    OP
       2018-10-11 14:06:36 +08:00
    @huamiao “把 C 的 ip 设置成 A 的” 这个怎么弄?
    akira
        20
    akira  
       2018-10-11 14:07:23 +08:00
    要看 B 是通过什么来识别数据来源 ,然后再根据这个来出方案
    liuminghao233
        21
    liuminghao233  
       2018-10-11 14:11:39 +08:00 via iPhone
    不能

    “让 B 觉得数据包仍然是从 A 上传的”

    这种情况下 B 必然会把数据包直接回复给 A

    然而你又说 “问题是 A 到 B 之间很慢”

    所以 不能
    huamiao
        22
    huamiao  
       2018-10-11 14:13:57 +08:00
    @google456 你先要有网络拓扑图,如果 A 直接是公网 IP,那在你这个层级也没辙吧。如果是你可控的网络,那么 C 设置成 A 的 IP,把 A、C 划入一个子网,让 A 连接 C (代理啥的)应该也可以达到目的。
    ttghc
        23
    ttghc  
       2018-10-11 14:16:39 +08:00
    不应该先明确是网络层以下,还是网络层,还是应用层来识别身份的么?
    azh7138m
        24
    azh7138m  
       2018-10-11 16:32:38 +08:00 via Android   1
    A 跑 client C 跑 server 做一个简单的隧道

    如果要对 B 透明,C 要作为 B 的网关存在,你是要修改 B 的配置的,如果 BC 不能物理链接的话,就很难做了
    google456
        25
    google456  
    OP
       2018-10-11 17:33:08 +08:00
    @azh7138m 看起来 我这个需求是没法实现的。谢谢你的回复。
    这个帖子就算结束了吧。
    zjlletian
        26
    zjlletian  
       2018-10-11 17:47:31 +08:00
    full-nat 了解一下?
    zn
        27
    zn  
       2018-10-11 18:50:47 +08:00 via iPhone
    @google456 你都不知道对方怎么判断,你怎么欺骗过去?
    030
        28
    030  
       2018-10-11 19:20:14 +08:00
    为什么不行,你 A 和 B 是直接连着根网线的吗
    xdz
        29
    xdz  
       2018-10-12 09:06:00 +08:00
    如果就是看 ip 的,可以动 c 到 a 的路由,可以看看 tproxy
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3549 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 00:07 PVG 08:07 LAX 17:07 JFK 20:07
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86