XMPP使用哪个端口?

56

我搜索了一下,没有找到XMPP使用哪些端口。 我需要实现XMPP服务器和客户端,并使用XML传输、文件传输和流传输。 它们是否使用不同的端口?有办法让它们都使用相同的端口,这样我就不必麻烦网络管理员了吗? 谢谢。

4个回答

100

根据维基百科

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

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


在RFC的2.3、2.4和2.5节中还有关于推荐端口号的其他注释(http://www.ietf.org/rfc/rfc3920.txt)。 - Brent Writes Code

5
根据可扩展消息和出席协议(维基百科),服务器的标准TCP端口是5222。
客户端可能会使用相同的端口作为消息传递协议,但也可以使用http(端口80)和https(端口443)进行消息传递。它们的优点在于适用于防火墙后面的用户,所以您的网络管理员不需要介入。

2
但是对于文件传输,我需要另一个端口,不是吗? - fredcrs

4
您需要的端口号因您所使用的XMPP服务器和任何XMPP客户端而异。大多数“现代”XMPP服务器遵循定义好的IANA服务器对服务器之间的端口5269和客户端对服务器之间的端口5222。任何其他端口取决于您在服务器上启用了哪些功能,例如,如果您提供BOSH,则可能需要打开80端口。
文件传输高度依赖于您使用的客户端和服务器以及它将使用的端口,但大多数也通过您现有的XMPP客户端对服务器的连接进行协商,因此所需的端口开放将是客户端侧(或通过80端口代理)。

2

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接