gpt4 book ai didi

udp - 使用 STUN 打洞

转载 作者:行者123 更新时间:2023-12-01 02:07:01 25 4
gpt4 key购买 nike

我目前正在尝试通过 Internet 发送 UDP 消息,并且必须为端点 A 和 B(都位于 NAT 后面)设置防火墙。为此,我想使用 STUN 服务器进行打洞。

当 A 创建对 STUN 服务器的请求(例如,私有(private):85.1.1.12:6000 和公共(public):173.194.78.127:19302)时,我得到 85.1.1.12:6000 作为响应。如果我要从相同的源配置(用于 STUN 请求的相同源 ip 和端口)发送一个数据包到任何其他目标地址(目标端口保持不变),那么我的 NAT 将再次更改公共(public)端口(从 6000 到其他任何东西)。我发现通过对两个不同的 STUN 服务器请求使用相同的地址端口配置(对两个请求使用端口 19302)。

像这样,在向 B 发送数据包时,我无法知道我的 NAT 转换的端口是什么(B 无法接收任何东西,因为它的防火墙没有设置)。

这是因为我的 NAT 类型与打洞不兼容还是我的概念有误?

谢谢!

最佳答案

85.1.1.12:6000 不是您的私有(private) IP 地址。它是您的 NAT 的公共(public)/外部 IP:端口。私有(private) IP 是您的 PC/设备的接口(interface)地址。

从你的场景我猜你有一个对称的 NAT。在对称 NAT 中,每次您将一些数据包发送到不同的目的地时,您的 NAT 的公共(public)端口都会发生变化。如果您的目的地保持不变,那么 NAT 的公共(public) IP:端口也保持不变。

对于其他类型的 NAT,如果您的私有(private) IP 没有更改,那么您将数据包发送到哪里都没有关系,您的 NAT 公共(public) IP:端口(在您的情况下为 85.1.1.12:6000)将保持不变。

如果一侧具有 **Symmetric NAT 而另一侧具有 Symmetric/PRC NAT,则无法打洞。

**对称 NAT 是指提供随机端口分配的对称 NAT。

关于udp - 使用 STUN 打洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com