代理环境下的 IPv6 源 IP - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
journalist
V2EX    宽带症候群

代理环境下的 IPv6 源 IP

  •  
  •   journalist 2024-02-25 05:57:40 +08:00 via iPhone 3258 次点击
    这是一个创建于 624 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在设备 A 上运行代理软件,这个软件具体是什么不太重要,B 通过某种方式将流量发送给 A ,可以是 socks5 ,tproxy ,tun 或者其他什么方式。A 的代理程序看了一下,决定直连出站,这个时候 B 访问的目标 C 看到的源 IP 是 A 的而不是 B 的。

    具体的表现就是访问 test-ipv.com ,显示 A 的 IP 。这算是一种 NAT 吗,有没有什么方法在直连的时候不改变(或者改回去)源地址?

    我现在的做法是把想要直连的 IP 段写进防火墙规则,但是这就丢失了代理软件可以快速切换规则的便利性。

    Network Address Translation (NAT) and Proxies (part 2)

    15 条回复    2024-02-25 20:27:39 +08:00
    yyzh
        1
    yyzh  
       2024-02-25 06:45:40 +08:00 via Android
    没有.直连吧
    ysc3839
        2
    ysc3839  
       2024-02-25 07:24:51 +08:00 via Android
    理论可行,但实际很可能不行。方法是 A 发包时源地址设置成 B 的地址,这样目标服务器发回包时会直接发给 B
    ysc3839
        3
    ysc3839  
       2024-02-25 07:26:34 +08:00 via Android
    @ysc3839 还没写完,不小心点到回复了。
    但是实际上运营商很可能限制 A 发出包的源地址必须是 A 的地址,上述操作发出去的包会被直接丢弃。
    SenLief
        4
    SenLief  
       2024-02-25 08:28:46 +08:00
    你这个分流应该在 A 上做,而不是 B 上。
    leonshaw
        5
    leonshaw  
       2024-02-25 09:24:51 +08:00 via Android
    pagxir
        6
    pagxir  
       2024-02-25 12:05:54 +08:00 via Android
    你需要在 dns 那边就做分流而不是在代理应用那边。
    pagxir
        7
    pagxir  
       2024-02-25 12:07:01 +08:00 via Android
    dns 分流可以在网关实现,不影响便利性。
    kokutou
        8
    kokutou  
       2024-02-25 12:56:03 +08:00 via Android
    各种客户端软件都是 a 上面分流啊

    a 上面可以拿到进程,域名,
    b 上面首先就没进程,而且可能域名都没得就只有 ip
    mantouboji
        9
    mantouboji  
       2024-02-25 13:39:47 +08:00
    这个涉及到你 IPv6 部分的路由分流是怎么做的。

    就我自己而言,无论 v4 还是 v6 全是靠 OSPF 分流,境外的 IPv4 和 v6 流量都走 wireguard 隧道出去,所以访问境外 v6 网站看到的源地址就是我境外 VPS 的 v6 地址,访问境内 v6 网站看到的是我 PPPoE 得到的那个地址。

    这没什么啊。实际上因为境内 IPv6 路由的不完备,而且 v6 路由上也要经过墙,这样折腾实际上比纯走国内 v6 路由要快一点点。
    icaolei
        10
    icaolei  
       2024-02-25 13:40:48 +08:00
    你只要把流量给 A 的代理程序了,就是 A 在访问 C 了。你要做的是 B 来决定哪些直连,哪些发给 A 去代理。
    luoshengdu
        11
    luoshengdu  
       2024-02-25 17:06:16 +08:00
    先试试用 DNS 分流,这个部署成本低,并且不改变网络架构。
    https://github.com/pmkol/easymosdns

    功能说明:
    *支持 EDNS 解析,根据域名与中国大陆 IP 列表智能分流,查询结果无污染*
    *强化 Hosts 功能,域名支持多个 IP ,支持 IPv6*
    *支持指定 ECS ,强制域名附带指定的 ECS 解析*
    journalist
        12
    journalist  
    OP
       2024-02-25 17:29:57 +08:00
    怎么都在说 DNS ,我这里只考虑直接访问 IP 的情况
    journalist
        13
    journalist  
    OP
       2024-02-25 17:35:40 +08:00
    @mantouboji 是这样的,你说的没错。
    journalist
        14
    journalist  
    OP
       2024-02-25 17:57:53 +08:00
    假设设置运行代理的机器为网关,代理程序判断是否直连显然是在应用层,而实际上直连的流量没必要进入应用层,在网络层直接转发给下一跳就可以了。如果代理程序能在流量进入 INPUT 之前就进行判断,是不是就可以达到源 IP 不变的目的?
    tavimori
        15
    tavimori  
       2024-02-25 20:27:39 +08:00
    @journalist 要使设备 A 使用 B 的地址作为源地址向服务器建立连接,那么目标 C 返回的包的目的地址就是 B 的地址。

    如果设备 A 使用 socks5 ,tproxy 等代理技术,那么设备 A 必须能够拦截到目标 C 返回的发给 B 的包,并重新以代理响应的方式返回给 B ,这就要求目标 C 发给 B 的包在网络中一定得经过设备 A 。此外在 A 上实现这个功能也比较怪异,例如 socket 要绑定非本机 IP ,并且可能要注入一个特定的 ebpf 程序来劫持目标 C 返回的特定包。

    也有一些特殊的做法可以满足你的要求,例如一个叫做 dae 的代理软件使用 ebpf 来过滤直连的流量,只要确保不启用 SNAT ,就可以实现你需要的功能。这类代理软件在处理直连的流量时行为完全与路由器是一致的。https://github.com/daeuniverse/dae/blob/main/docs/zh/how-it-works.md
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3214 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 11:39 PVG 19:39 LAX 03:39 JFK 06:39
    Do have faith in what you're doing.
    ubao msn 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