我最近购买了具有公共 IP 的云服务器,我正在使用它来托管 xmpp 服务器。
我的第一个任务是确保我的用户使用我的子域进行连接——例如 m.chat.com。
在我的配置中,我有以下内容:
%% Hostname
{hosts, ["m.chat.com"]}.
然后,我使用该域创建了一个管理员用户。
在并行中,我与我的主机提供商创建了以下 DNS 记录,hostgator 为我的子域 m.chat.com
Name TTL Class Type Record
m.chat.com 14400 IN A [IP of the server]
让我感到困惑的一件事是我能够访问 ejabberd 网络管理控制台。这是通过以下方式实现的:[服务器的 IP]:5280/admin 但是我无法通过 m.chat.com:5280/admin 访问它
除此之外,在 Web 控制台中,在“虚拟主机”下,我可以看到主机“m.chat.com”。我创建了一个用户“user@m.chat.com”并尝试通过 Adium 进行连接。
在 Adium 中,只需输入 user@m.chat.com 和密码是行不通的。相反,我还必须指定“连接服务器”,在这种情况下是 [服务器的 IP]。
它连接良好,我已经注册了其他用户以检查一切是否正常。
然后我想我会回到 ejabberd 配置并开始搞乱。我将主机名更改为以下内容:
%% Hostname
{hosts, ["m.chat.com", "facebook.com"]}.
我使用该域注册了一个用户并重新启动了 ejabberd。检查网络控制台后,令我惊讶的是,我可以看到虚拟主机“facebook.com”。我使用“连接服务器”部分中定义的 [服务器 IP] 在 Adium 中测试了该用户,并且连接正常。我让其他拥有自己互联网连接的人在他们的 PC 上使用此帐户,他们也能够连接。
故事结束 - 我对每个人的问题是这怎么可能?我错过了什么吗?是否没有域认证。在线搜索后,您似乎甚至可以使用假域名。
如果我将来要运营自己的服务(iOS 聊天应用程序),我不希望任何人在他们自己的公共服务器上使用我的域名。
有人可以发光吗。
谢谢!
编辑:第二个问题-最好我不想在使用客户端时定义“连接服务器”。我希望客户端能够识别@m.chat.com 域并自动建立与服务器 IP 的连接。我是否正确配置了我的 DNS 记录?对于使用 Hostgator 的其他人,我是否必须执行其他任务?
编辑:我现在可以通过 m.chat.com:5280/admin 访问 Web 控制台,并且在使用客户端时不再需要指定连接服务器。我什么都没做,我认为这是 Hostgater 更新 DNS 或其他什么的情况,他们说通常需要 4 个小时。但是,我仍然对为什么可以使用 facebook.com 域创建帐户感到有些困惑。我了解,因为我无法访问此域的 DNS 管理员,所以我无法创建任何记录,但这并不妨碍我使用该域并仅指定连接服务器。