V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HawkinsSherpherd
V2EX  ›  宽带症候群

端口转发应用如何确定转发后的流量在服务器使用的端口

  •  
  •   HawkinsSherpherd · 210 天前 · 1202 次点击
    这是一个创建于 210 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用过许多端口转发程序,如 gost 、udp2raw 、ss+任意门,但它们都有一点困扰着我:转发后的流量在服务器端使用的端口无法确定,也没有查到有什么机制能够创建固定的端口映射关系,我想要使用的一些东西需要双方具有固定的地址和端口组合( fou 、vxlan 、l2tpv3 等)。

    ---------
    ClientApp       (TX: 127.0.0.1:16385)
    ||              (RX: 0.0.0.0:16384)
    ||
    ||
    ||
    TunnelClientApp (TX-Local: 127.0.0.1:16384)
    ||              (RX-Local: 0.0.0.0:16385)
    ||              (TX-Inet:  serverAddr:12345)
    ||              (RX-Inet:  0.0.0.0:randomPort)
    ||
    TunnelServerApp (TX-Local: 127.0.0.1:16384)
    ||              (RX-Local: 127.0.0.1:randomPort)
    ||              (TX-Inet:  clientAddr:randomPort)
    ||              (RX-Inet:  serverAddr:12345)
    ||
    ServerApp       (TX: 127.0.0.1:randomPort)
    ---------       (RX: 127.0.0.1:16384)
    

    如图所示,经过 TunnelApp 的转发,来自 ClientApp 的流量在 ServerApp 侧使用的端口变得无法确定。

    对此,我有两个问题:

    1. 目前是否有可建立固定的客户端/服务器端端口映射关系的端口转发应用?

    2. 有何方法能够干预这些端口转发程序对客户端转发过来的流量在服务器端使用的端口选择,以使端口映射关系固定?

    3 条回复    2024-04-28 13:50:58 +08:00
    tool2dx
        1
    tool2dx  
       210 天前   ❤️ 1
    一般来说,主动连接的一方,是无法确定端口的。

    比如服务器是 443 端口,你没办法确定客户端是什么,本来就是操作系统随机分配的。

    当然也可以用代码指定,就是很少有人这样做。
    povsister
        2
    povsister  
       210 天前 via iPhone
    选择支持 FullClone 的代理软件
    ihciah
        3
    ihciah  
       210 天前 via iPhone
    要么 parse 协议然后加限制(即再做一层代理或者直接改源码),要么换一个,比如直接 iptables/nftables 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:53 · PVG 03:53 · LAX 11:53 · JFK 14:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.