V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huyomi
V2EX  ›  程序员

自建 p2p VPN 如何突破运营商的 UDP 限制

  •  
  •   huyomi · 319 天前 · 2419 次点击
    这是一个创建于 319 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想写一个类似于 VPN 的项目来练手熟悉一下网络原理,类似于 zerotier
    暂时的架构是 1 server 非转发模式,仅打洞, n client 。。

    想请教一下运营商的 UDP 限制到底是基于什么,怎么绕过?打洞的成功率靠什么。
    9 条回复    2024-01-04 20:12:03 +08:00
    vfs
        1
    vfs  
       319 天前
    直接建议放弃,没有服务器中转肯定不行
    cleanery
        2
    cleanery  
       319 天前
    因为 UDP 无状态, 易伪造, 所以很多地方对 udp 的限制都比较多, 主要体现在丢包, 限速
    udp 的限制一般都是有时效性的, 针对 ip 和端口号进行限制
    NAT 穿透简单过程可以参考 https://www.cnblogs.com/yorkyang/p/9995441.html
    成功率主要取决于 NAT 类型和防火墙限制
    AoEiuV020JP
        3
    AoEiuV020JP  
       319 天前
    一个核心是,双方列出自己所有 ip ,包括服务器看到的 remote ip port ,然后各自监听端口,对方一个一个 ip 尝试发送 udp 包看这边能不能收到能不能回复,能就打洞成功了,
    udp 二元组,本该是与 source 无关的,但运营商可能会去判断,这个入网 udp 的 source 不是刚才出网 udp 的 destination ,那就不给转发,这就是限制了,具体不同的限制罗辑就表现不同的 nat 级别,
    dianso
        4
    dianso  
       319 天前
    可以的

    成本太高了

    UPnP 靠穷举是可以连接的
    dode
        5
    dode  
       319 天前
    运营商 UDP 限制,大概是 UDP 通信随机丢包&限速
    Acoffice
        6
    Acoffice  
       319 天前 via Android
    买下运营商
    yulon
        7
    yulon  
       319 天前
    丢包策略要写好,不能太暴力,异常流量会被盯上,也不能太弱,不然包全丢了,可能还是得看当地情况
    ac169
        8
    ac169  
       319 天前
    用 tcp

    另外, 你准备弄新项目, 所以建议应该侧重考虑基于 v6 环境下来做!
    cnbatch
        9
    cnbatch  
       319 天前
    打洞?那不如造个 STUN Server / Client 程序吧,有现成的标准可以参考
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.