2010-08-10 90 views
46

我搜索了并没有发现XMPP使用哪些端口。 我需要实现XMPP服务器和客户端,并使用XML传输,文件传输和流媒体。 他们使用不同的端口?有没有一种方法可以让他们使用所有相同的,所以我不需要打扰网络管理员? 感谢XMPP使用哪个端口?

回答

83

根据Wikipedia

 
5222 TCP  XMPP client connection (RFC 6120)  Official 
5223 TCP  XMPP client connection over SSL   Unofficial 
5269 TCP  XMPP server connection (RFC 6120)  Official 
5298 TCP UDP XMPP JEP-0174: Link-Local Messaging/ Official 
      XEP-0174: Serverless Messaging 
8010 TCP  XMPP File transfers      Unofficial  

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

你说你搜索了这个信息,但是找不到它。我通过搜索XMPP port找到了这个。我从上面引用的维基百科页面是当前搜索的第一个结果,并且RFC位于搜索结果的第一页。

+0

还有一些关于RFC 2.3.3,2.4和2.5中的推荐端口#的其他评论(http://www.ietf.org/rfc/rfc3920.txt) – 2010-08-10 18:44:31

4

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

客户端大概使用相同的端口的消息传递协议,但也可以使用HTTP(端口80)和https(端口443)用于消息传递。这些功能有利于防火墙后的用户,因此您的网络管理员不需要介入。

+2

但是对于文件传输I将需要另一个端口,不是吗? – fredcrs 2010-08-10 18:46:34

3

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

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

0

official ports的(TCP:5222和TCP:5269)在RFC 6120相反一previous answer,XEP-0174 does not specify a port的权利要求中列出。因此TCP:5298可能习惯于Link-Local XMPP,但不是官方的。

但是,您可以使用除保留字段之外的其他端口:您可以将DNS SRV记录指向您喜欢的任何机器和端口。

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