假设我正在运行绑定(bind)到公共(public) IP(例如 100.0.0.1)的 TURN 服务器。当服务器为创建分配请求创建中继端口时,服务器是否会发回与 XOR-RELAYED- 中绑定(bind)到的 IP 地址(本例中为 100.0.0.1)不同的 IP 地址?地址属性?我对网络不太熟悉,无法了解所有可能的情况,并且 RFC 5766并没有真正说出任何具体内容(据我所知)。
换句话来说,XOR-RELAYED-ADDRESS 中的 IP 地址是多余的吗?在我考虑过的所有情况下,客户端只需要知道分配的端口,并且可以完全忽略XOR-RELAYED-ADDRESS的IP。只要客户端知道中继端口,它总是可以在中继端口将中继数据发送到 TURN 服务器公共(public) IP(它已经知道该 IP,因为它必须最初连接...)。
有什么意见吗?
最佳答案
如果您的服务器不在 NAT 后面(在分配有公共(public) IP 地址的公共(public)互联网上),则 XOR-RELAYED-ADDRESS 中返回的 IP 地址将是相同的。 (它始终与分配给其 NIC 的 IP 地址相同)。
我认为您考虑忽略 XOR-RELAYED-ADDRESS 的原因与您提出 TURN 服务器实际上位于 NAT/防火墙后面的其他问题有关。我想你会发现IP地址是可以预测的。但是您的服务器所在的防火墙/NAT 可能会弄乱端口分配。确保您了解 TURN 服务器如何进行端口分配,并且您的防火墙正确进行端口转发。
一点术语澄清。您的服务器没有“绑定(bind)”到公共(public)或私有(private)IP。您的服务器套接字绑定(bind)到已分配并关联 IP 地址的接口(interface)。
关于networking - TURN 服务器 XOR-RELAYED-ADDRESS IP 与其自己的公共(public) IP 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634898/