在 OpenFire 上,为什么好友的授权请求没有通过?

在 OpenFire 上,为什么好友的授权请求没有通过?

在 Ubuntu 16.04 (DigitalOcean) 上,我安装了 OpenFire 4.2.1。到目前为止,我尚未设置 SSL,但我可以:

  1. 从家里连接到 Web 管理控制台
  2. 创建一些用户
  3. 使用 Miranda IM Windows 客户端和 Pidgin Windows 客户端连接服务器并获取“在线”状态
  4. 查找其他用户并将他们添加到我的联系人/好友列表

我无法做的是接收用户之间的授权请求。

我跑了:

tcpdump -n -i eth0 'tcp and (port 5222 or port 5269 or port 5280)'

然后我从一个好友向另一个好友发送了“重新请求授权”请求,并得到了以下输出:

23:09:12.295932 IP {IP-of-server}.5222 > {IP-of-requester}.56898: Flags [.], ack 158, win 191, length 0
23:09:12.358987 IP {IP-of-server}.5222 > {IP-of-requester}.56898: Flags [P.], seq 241:481, ack 158, win 191, length 240
23:09:12.492207 IP {IP-of-requester}.56898 > {IP-of-server}.5222: Flags [.], ack 481, win 255, length 0

因此,看起来服务器正在接收授权请求,是吗?是否有下一步来诊断问题?我是否遗漏了一些简单的东西?

我的服务器没有受到严重影响,因此我冒险暂时禁用了防火墙并重试发送授权请求,但这似乎并没有让收件人做出回应。

如果我遗漏了对您帮助我的重要信息,请告诉我。

答案1

好吧,我做了很多事情,现在它可以工作了,所以这是不知道哪一个修复了它的情况之一,但为了其他人的利益,这是我所做的:

  1. 将 SRV 记录添加到我的 DNS

在 OpenFire 的管理 Web 控制台中,我没有注意到“服务器 | 服务器管理器 | 服务器信息”下的警告:“未找到此主机的 DNS SRV 记录”。在那下面有很多关于 XMPP 需要 SRV 记录的有用信息,我以前从未听说过。简而言之,它是一种将流量从一个域转发到另一个域的机制,XMPP 有时需要它(当 DNS 和 XMPP 服务器显然不在同一台服务器上托管时)。需要注意以下几点:确保您获得正确的 SRV 记录格式,因为它并不明显;使用 Netfirms 作为我的域和 DNS 提供商,我必须让他们的技术支持添加 SRV 记录,因为在 Netfirms 中,没有办法管理它们。

  1. 在所有 XMPP 客户端上,我更改了帐户信息。

具体来说,对于用户名信息,我没有使用 xmpp.mydomain.com,而是使用了 mydomain.com。例如,对于用户名 joe.blow,我输入[电子邮件保护]代替[电子邮件保护]。这不是我的偏好,但我有点怀疑这就是让它起作用的原因。

直到今天,我仍然对整个 XMPP 服务器属性感到困惑:XMPP Domain Namevs.Server Host Name (FQDN)为什么需要两者?为什么不能只使用 FQDN?

我知道这与问题无关但是......

还有一个 OpenFire 提示,以防有人像我一样难以安全访问您的管理 Web 门户。如果您使用 Let's Encrypt 作为证书,并且您很幸运在同一台服务器上运行 Apache,那么您可以尝试让 OF 接受 xmpp.mydomain.com 证书,以便通过以下方式访问您的管理门户:https://xmpp.mydomain.com,您可以改用 Apache 作为反向代理。使用 Let's Encrypt 证书建立并自动续订 Apache Web 服务器要容易得多——至少我发现是这样。

您的 Apache conf 文件可能看起来像这样(包括从 http 到 https 的重定向):

<IfModule mod_ssl.c>
<IfModule mod_proxy.c>

<VirtualHost *:443>
    ServerName xmpp.mydomain.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/xmpp

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/xmpp.mydomain.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/xmpp.mydomain.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/xmpp.mydomain.com/chain.pem

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:9090/
    ProxyPassReverse / http://127.0.0.1:9090/

</VirtualHost>

</IfModule>
</IfModule>

<VirtualHost *:80>

    ServerName xmpp.mydomain.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/xmpp

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https: //%{HTTP_HOST}%{REQUEST_URI} [R,L]

</VirtualHost>

相关内容