1

我最近购买了具有公共 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 管理员,所以我无法创建任何记录,但这并不妨碍我使用该域并仅指定连接服务器。

4

1 回答 1

0

您最初的问题(无法使用 访问服务器m.chat.com)几乎可以肯定是 DNS 问题,并且您似乎已将其隔离到更新记录所花费的时间。

您的第二个问题 - 关于您可以不受限制地命名虚拟主机这一事实,很简单但很有趣。是什么让您认为应该有任何限制?就像您指示我无法将“m.chat.com”保存在磁盘上的文件中,或者我无法通过 Internet 发送消息中的“m.chat.com”。

这就是 DNS 存在并按其方式构建的原因。虽然我可以告诉我的服务器它托管facebook.com,但没有人会连接到它,因为 DNS 记录facebook.com不指向我的服务器(用户通常不会手动设置“连接主机”)。这引出了一个问题……我为什么要告诉我的服务器它托管facebook.com,如果我这样做了,Facebook 为什么要关心?

DNS 之上的另一个但相关的身份层是证书 - 尽管设置了任何“连接主机”,客户端都应验证虚拟主机名。由于无法获得 的证书facebook.com,因此客户端通常应弹出警告或根本无法连接。如果他们不这样做,他们可能没有正确验证证书。

于 2013-07-27T18:53:18.067 回答