54

我已经搜索并没有找到 XMPP 使用哪些端口。我需要实现 XMPP 服务器和客户端,并使用 XML 传输、文件传输和流式传输。他们使用不同的端口吗?有没有办法让它们都一样使用,所以我不需要打扰网络管理员?谢谢

4

4 回答 4

95

根据维基百科

5222 TCP XMPP客户端连接(RFC 6120)官方  
5223 TCP XMPP 客户端通过 SSL 连接非官方
5269 TCP XMPP 服务器连接 (RFC 6120) 官方
5298 TCP UDP XMPP JEP-0174:链接本地消息/官方
             XEP-0174:无服务器消息传递
8010 TCP XMPP 文件传输 非官方    

端口号在RFC 6120 § 14.7 中定义。

于 2010-08-10T18:31:20.640 回答
5

根据Extensible Messaging and Presence Protocol (Wikipedia),服务器的标准 TCP 端口是 5222。

客户端可能会使用与消息传递协议相同的端口,但也可以使用 http(端口 80)和 https(端口 443)进行消息传递。这些具有为防火墙后面的用户工作的优势,因此您的网络管理员不需要参与其中。

于 2010-08-10T18:33:01.687 回答
4

您的 XMPP 服务器和任何 XMPP 客户端所需的端口都不同。大多数“现代”XMPP 服务器遵循为服务器到服务器 5269 和客户端到服务器 5222 定义的 IANA 端口。任何其他端口取决于您在服务器上启用的功能,即如果您提供 BOSH,那么您可能需要打开 80 端口。

文件传输高度依赖于您使用的客户端和服务器将使用哪个端口,但它们中的大多数还通过您现有的 XMPP 客户端到服务器链接协商连接,因此所需的端口开放将是客户端(或通过端口 80 代理。)

于 2010-08-13T16:25:36.300 回答
1

RFC 6120 中列出了官方端口(TCP:5222 和 TCP:5269)。与先前答案的声明相反,XEP - 0174没有指定端口。因此 TCP:5298 可能是 Link-Local XMPP 的惯例,但不是官方的。

不过,您可以使用保留端口以外的其他端口:您可以让您的 DNS SRV 记录指向您喜欢的任何机器和端口。

如今,文件传输 (XEP-0234)是使用Jingle (XEP-0166)处理的。RTP 会话 (XEP-0167)也是如此。但是,它们没有指定端口,因为 Jingle 在 XMPP 客户端之间协商创建数据流,但实际数据随后通过该流以其他方式(例如 RTP)传输(即通常不通过 XMPP 服务器,即使带内传输是可能的)。请注意,Jingle 由多个 XEP 组成,因此请务必查看XMPP 扩展的完整列表。

于 2018-03-09T18:29:34.237 回答