TCP STUN 客户端 - 检查 NAT 类型行为

问题描述 投票:0回答:2

我想使用可用的 STUN 服务器(公共 Stun 服务器)(STUNTMAN)检查 NAT 类型及其行为。我尝试并找到了可以与 STUN 服务器通信以识别 NAT 行为的客户端代码(STUN CLIENT),但全部都是 UDP 格式。根据RFC-5780,我们可以检查 UDP 和 TCP 的映射行为,因此我想使用 TCP 检查相同的行为,并且我已经实现了与 UDP 相同的方式,但两个结果不同。因此,查找 NAT 行为的行为/步骤是否与 UDP 相同还是需要实现其他方式。 任何示例客户端代码也会有所帮助。

networking tcp udp nat stun
2个回答
0
投票

STUN/TURN 通过模拟几种不同类型的连接来检查 NAT 类型,并逐步拆分 Full Cone、Restricted NAT、Port Restricted NAT 和 Symmetric NAT。

我们通常使用UDP,因为我们不需要三向握手来建立连接,这可能会混淆NAT类型的判断。所以如果你想使用TCP,你首先需要知道STUN对于UDP是如何一步步检查NAT类型的,并且想想TCP三路握手会发生什么。它不能只是复制代码。


0
投票

对于 MacOS: 安装替身演员:

homebrew install stuntman

然后运行:

/opt/homebrew/Cellar/stuntman/1.2.16/bin/stunclient stunserver.stunprotocol.org --mode behavior 



Binding test: success
        Local address: 192.168.1.115:56027
        Mapped address: xx.xx.xx.xx:19319
        Behavior test: success
    Nat behavior: Endpoint Independent Mapping
© www.soinside.com 2019 - 2024. All rights reserved.