这是一个创建于 1221 天前的主题,其中的信息可能已经有所发展或是发生改变。
上周末没事研究了一下 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
|
|
1
trepwq 2020-12-21 21:34:35 +08:00 via iPhone
研究一下 nat 类型吧
|
|
|
2
locoz 2020-12-21 23:42:09 +08:00 via Android
全文没有提到 nat 类型,应该是不知道有这回事?建议先了解一下再折腾打洞
|
|
|
3
bruce0 2020-12-22 09:37:36 +08:00
@ trepwq @ locoz 今天刚测试了一下,已经排除 nat 是对称型类型, 剩下的 cone 类型的应该都是可以打洞的
|