V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bruce0
V2EX  ›  问与答

想请教一个 udp 的 nat 穿墙打洞技术

  •  
  •   bruce0 · 2020-12-21 21:32:29 +08:00 · 1330 次点击
    这是一个创建于 1457 天前的主题,其中的信息可能已经有所发展或是发生改变。
    上周末没事研究了一下 udp 的穿墙打洞技术,代码使用 Go 写的

    先说一下我的基本思路吧; 一个有公网 ip 的端 S, 两个没有公网 ip 的端 A 和 B;
    A 和 B 发送和监听使用同一个端口
    A 和 B 先连接到 S 上, 这一步没有问题; A 通过 S 得到 B 的公网 Ip 和端口, 然后 A 向 B 的公网 IP 和端口发数据包, A 告诉 S , 然后 S 告诉 B, A 的公网 IP 和端口并且 A 已经发包了, 这时 B 也 向 A 的公网端口和 IP 发包

    到这 理论上 A 和 B 应该能相互发包了, 但实际上 A,B 都能 S 互通, 但是 A 和 B 之间的包没有发过去.

    有大哥知道问题出在哪了 给点建议 非常感谢
    3 条回复    2020-12-22 09:37:36 +08:00
    trepwq
        1
    trepwq  
       2020-12-21 21:34:35 +08:00 via iPhone
    研究一下 nat 类型吧
    locoz
        2
    locoz  
       2020-12-21 23:42:09 +08:00 via Android
    全文没有提到 nat 类型,应该是不知道有这回事?建议先了解一下再折腾打洞
    bruce0
        3
    bruce0  
    OP
       2020-12-22 09:37:36 +08:00
    @trepwq
    @locoz
    今天刚测试了一下,已经排除 nat 是对称型类型, 剩下的 cone 类型的应该都是可以打洞的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5612 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:36 · PVG 14:36 · LAX 22:36 · JFK 01:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.