是否可以在没有域名的情况下运行 XMPP 服务器?
Posted
技术标签:
【中文标题】是否可以在没有域名的情况下运行 XMPP 服务器?【英文标题】:Is it possible to run an XMPP server without a domain name? 【发布时间】:2017-01-21 16:58:50 【问题描述】:我需要为具有端到端加密和语音呼叫的 IM 运行 XMPP 服务器。我正在尝试设置 Prosody,但客户端之间没有自己的 DNS 服务器和 *** 网络?
【问题讨论】:
【参考方案1】:简短回答:是的。
您仍然可以为您的服务器配置 XMPP 域。根据标准,它不必是 DNS 名称或 IP 地址。像myserver
这样的东西很好。引用RFC 7622 § 3.2:
每个 XMPP 服务的 domainpart 必须是完全限定的域 名称 (FQDN)、IPv4 地址、IPv6 地址或不合格的 主机名(即,可在本地网络上解析的文本标签)。
但是,如果您没有 DNS 名称,那么客户端将不会自动知道如何访问您的服务器。这意味着您必须在每个客户端中配置 IP 地址和端口。
【讨论】:
谢谢你,Flow。在我的情况下,具有内部 ip 的 xmpp 服务器将位于具有白色 ip 的 NAT 之后。我必须只转发端口还是做其他事情? srv 记录呢? 是的,您将需要某种端口转发。 SRV 记录将 DNS 名称映射到主机和端口。并且该 DNS 名称必须与您的服务的 XMPP 域名匹配。【参考方案2】:您可以使用 IP 地址代替域名,但如果该地址会定期更改,您可能需要对标准 XMPP 服务器和客户端进行修改,因为他们不会预料到这一点。
【讨论】:
感谢您的回答。 IP是不变的。如果我没有域名,我必须在韵律配置的域部分写什么? 您可能没有 DNS 名称,但您仍然有 XMPP 域(不一定需要匹配的 DNS 名称,尽管我会推荐它)。 XMPP 域可以是您的 IP 地址或不合格的主机名。【参考方案3】:我浏览了许多 Prosody 教程,我认为仅基于 IP 地址和使用 SSL 来设置服务器是不可能的。我什至还没有找到如何使用 SSL 和可解析名称(如 raspberry.local)在本地网络上配置 Prosody。我的客户总是给服务器找不到,或者通信不正确。
【讨论】:
以上是关于是否可以在没有域名的情况下运行 XMPP 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
在没有 VoIP iOS 的情况下保持 XMPP 套接字在后台活动