ejabberd服务器日志显示已接受的连接,但xmpp客户端未显示来自服务器

时间:2015-07-29 18:09:23

标签: android xmpp ejabberd

我最近在macos X 10.7上设置了ejabberd服务器。服务器似乎运行正常,可以使用http://abc.example.com:5280/admin通过互联网访问管理页面。

我在我的Android手机中安装了“简单的XMPP客户端”,“ChatSecure”和其他xmpp聊天客户端,以连接到我的ejabberd服务器。所有这些都失败了。当我尝试连接时,我可以在ejabberd日志中看到以下行

2015-07-29 23:28:58.380 [info] <0.573.0>@ejabberd_listener:accept:299 (#Port<0.7250>) Accepted connection 182.70.123.139:55402 -> 192.168.1.4:5280
2015-07-29 23:37:51.844 [info] <0.571.0>@ejabberd_listener:accept:299 (#Port<0.7277>) Accepted connection 182.70.123.139:10751 -> 192.168.1.4:5222

但是,登录在xmpp聊天客户端上超时。不确定是什么导致了这个问题。当我在运行ejabberd服务器的同一个盒子上安装类似的xmpp客户端并尝试使用bob@abc.example.com进行连接时,它可以正常工作。

问题出现在我使用某些远程机器或手机时。即使请求到达ejabberd服务器,登录也不起作用。

请帮忙

来自raymond的以下建议更新后的帖子

嗨,雷蒙德

以下是调试模式后的更新日志。它停留在最后一行。请建议。

2015-07-30 21:16:46.450 [info] <0.566.0>@ejabberd_listener:accept:299    (#Port<0.7012>) Accepted connection 1.39.10.237:46913 -> 192.168.1.4:5222
2015-07-30 21:16:46.889 [debug] <0.586.0>@ejabberd_receiver:process_data:349 Received XML on stream = <<"<stream:stream to=\"abc.example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\">">>
2015-07-30 21:16:46.889 [debug] <0.587.0>@ejabberd_c2s:send_text:1901 Send XML on stream = <<"<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='129956901' from='abc.example.com' version='1.0' xml:lang='en'>">>
2015-07-30 21:16:46.890 [debug] <0.587.0>@ejabberd_c2s:send_text:1901 Send XML on stream = <<"<stream:features><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='5m6LdO+13BLJZeS37oD5PF54bGY='/><register xmlns='http://jabber.org/features/iq-register'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms></stream:features>">>

当我尝试在ejabberd正在运行的同一台机器上使用xmpp客户端连接时,它的工作及以下是它的日志片段。当我尝试使用远程机器或Android设备连接时,我没有得到“Auth”行互联网。

2015-07-30 21:47:46.149 [info] <0.566.0>@ejabberd_listener:accept:299 (#Port<0.7017>) Accepted connection 182.70.123.139:55949 -> 192.168.1.4:5222
2015-07-30 21:47:46.150 [debug] <0.617.0>@ejabberd_receiver:process_data:349 Received XML on stream = <<"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<stream:stream to=\"abc.example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\">">>
2015-07-30 21:47:46.150 [debug] <0.618.0>@ejabberd_c2s:send_text:1901 Send XML on stream = <<"<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='1273758616' from='abc.example.com' version='1.0' xml:lang='en'>">>
2015-07-30 21:47:46.152 [debug] <0.618.0>@ejabberd_c2s:send_text:1901 Send XML on stream = <<"<stream:features><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='5m6LdO+13BLJZeS37oD5PF54bGY='/><register xmlns='http://jabber.org/features/iq-register'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms></stream:features>">>
2015-07-30 21:47:46.156 [debug] <0.617.0>@ejabberd_receiver:process_data:349 Received XML on stream = <<"<auth xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\" mechanism=\"DIGEST-MD5\">dXNlcm5hbWU9ImFkbWluIixyZWFsbT0iY2hhdC52b3Rlc3VwLmNvbSIsbm9uY2U9IjM3OTYwNjcwNDYiLGNub25jZT0iQitjNDNpZkZ1d3NvN2JzYXRrMGRGT3N6dDJNTGhrZ2o3YkF2bWJGVyt3Yz0iLG5jPTAwMDAwMDAyLHFvcD1hdXRoLG1heGJ1Zj02NTUzNixkaWdlc3QtdXJpPSJ4bXBwL2NoYXQudm90ZXN1cC5jb20iLHJlc3BvbnNlPWE0Nzg1MTc2ZGE0MzdkOWYyNzBmMjhmODc5ZmZhYjQx</auth>">>

1 个答案:

答案 0 :(得分:1)

如果连接速度很慢(超时),可能是因为运营商减慢了端口5222上的流量。

要验证此假设,您应该:

  • 使用ejabberd调试日志级别查看协商是否正在进行(甚至是缓慢)。
  • 尝试使用纯SSL连接端口5223以查看它是否更快。
  • 尝试在另一个端口上运行ejabberd,例如443,这不会被您的移动服务提供商放慢速度。