是否可以在没有域名的情况下运行 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 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

保护 XMPP 通信

在没有 VoIP iOS 的情况下保持 XMPP 套接字在后台活动

iphone xmpp 相关!

是否可以在没有 Windows 服务的情况下使用服务帐户(域)在不同的用户(模拟)下运行代码?

多用户聊天 XMPP

有啥方法可以在不使用 XMPP 协议的情况下连接到 Facebook 聊天服务?