为 Node.js 设置 STUN 服务器时,主 IP 地址和辅助 IP 地址应该是啥?
Posted
技术标签:
【中文标题】为 Node.js 设置 STUN 服务器时,主 IP 地址和辅助 IP 地址应该是啥?【英文标题】:What should the primary and secondary IP address be when setting up STUN server for Node.js?为 Node.js 设置 STUN 服务器时,主 IP 地址和辅助 IP 地址应该是什么? 【发布时间】:2021-02-17 22:57:10 【问题描述】:我正在尝试使用 STUN 服务器为 Node.js 设置 STUN 服务器:
https://github.com/enobufs/stun
自述文件有以下指导:
将一个名为 node-stun.ini 的配置文件放入 您当前的目录。配置文件应如下所示。 (这些本地环回地址应该是可路由的公共 IP 地址 当然是在真实环境中)
[主要] 主机 = 127.0.0.1
[次要] 主机 = 127.0.0.2
有人知道主 IP 和辅助 IP 应该是什么吗?主要应该是我的 STUN 服务器机器的 IP 地址吗?二级应该是什么?
我可以将它们设置为 localhost 并使用 nginx 将请求路由到服务器吗?
最后,为什么软件需要引用这些 IP 地址?
【问题讨论】:
【参考方案1】:从技术上讲,STUN 需要服务器上有两个唯一的公共 IP 地址。但是大多数客户端实现只需要一个并且不使用备用/辅助地址。并且服务器代码需要知道这些地址是什么,原因有两个:
以便服务器知道将套接字绑定到哪个地址。 (它需要每个本地 IP 地址)
这样当绑定请求到达主 IP 时,服务器可以通告备用 IP 地址。 (如果它在带有端口转发的 NAT 后面,它需要知道主机的公共 IP 地址)。
如果您没有要提供的辅助 IP 地址,请提供任何允许服务器运行的地址。这会破坏 STUN 行为和过滤测试,但客户端很少需要这样做。
【讨论】:
谢谢,我想知道为什么需要涉及套接字(第 1 点)。 STUN 服务器的工作不就是 ping 回客户端的外部 IP 地址吗? STUN 服务器有两个工作。首先是回复客户端的外部 IP 地址和端口。第二个是为客户端提供一种推断其背后的 NAT 类型的方法。这就是需要第二个 IP 地址的原因。由于大多数 P2P/VOIP 客户端只遵循 ICE 方法,因此 NAT 行为/过滤类型检测并不是那么有用。更多细节在这里:tools.ietf.org/html/rfc5780以上是关于为 Node.js 设置 STUN 服务器时,主 IP 地址和辅助 IP 地址应该是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 Node/Express 作为 STUN 服务器? [关闭]