我想开始在我自己的计算机上托管我的网站以及我朋友的网站(例如迷你托管平台)。为此我学习了 Debian、Bind9 和 Apache。
在我的系统上一切都很顺利。甚至我的 IP 也可以从我的网络外部打开我的网站。但我的域名(例如abx.com
)不显示我的网站。
我如何设置才能abx.com
指向我的网站?
答案1
当人们问这个问题时,我总是告诉他们:
让其他人托管您的 DNS
严重地。您没有专业人士所拥有的网络稳定性,而 DNS 稳定性是幸福生活的关键。承认别人比你更擅长这并不是软弱。他们有一些你没有的东西:巨大的冗余。
大多数注册商提供免费的负载平衡和冗余名称服务器服务,分布在多个位置的多个服务器上。网络主机也是如此,甚至还有相当不错的免费服务。
答案2
您的域的 DNS(A 记录)必须指向您的托管 IP。在您的本地环境中,这可能看起来有效,但在外部环境中可能不起作用。这是由于 DNS 的性质决定的,它是分层的。以 abx.com 为例,如果我请求该域解析器(负责将 abx.com 转换为网络 IP nn.nn.nn.nn 的系统),则会发生以下情况。
解析器会查看您的设置以决定在何处查找 DNS。在 Windows 上,此设置位于您的网络属性中,通常从 DHCP 检索。在 UNIX 系统上,这是从 的组合中获取的nsswitch.conf
,如果包含dns
条目的设置hosts
,/etc/resolv.conf
则将用于查找nameserver
语句。如果这nsswitch.conf
是正确的,并且resolv.conf
包含名称服务器条目,那么它将按照名称服务器在文件中列出的顺序与名称服务器进行通信。
如果配置了缓存,名称服务器将检查它们是否已存储请求的本地条目,如果有,则返回该结果。如果他们没有条目,他们就会执行搜索 DNS 层次结构的工作。
在示例中,该域实际上由、和abx.com.
三个部分组成。它被称为根节点,大多数 DNS 不会显示它,但它是 DNS 工作原理的基础。 (尝试执行 a或on (注意尾随点)并注意,它的解析效果与 一样。将点放在互联网浏览器地址栏中的地址末尾也是如此。根节点实际上是分布式名称服务器网络,分布在许多国家/地区,由许多组织和公司托管。.
com
abx
.
host
nslookup
www.google.co.uk.
www.google.co.uk
回到您的解析器,它将知道hints
根节点名称服务器的位置。然后,它会询问根名称服务器之一,哪些名称服务器负责com
DNS 查询的部分。您可以使用host -t ns com
或来模拟此步骤nslookup -q=ns com
。然后,名称服务器将使用论坛选择其中列出的名称服务器之一,并使用它来请求域abx.com
。
此时,我们达到了一种称为委托的机制,com
名称服务器将责任委托abx.com
给其他名称服务器,这些是通过NS
记录完成的。但这些记录包含域名字不是IP地址。这些域名相互附加的方式是通过glue
记录,因此以 abx.com 为例,其内容类似于:
abx IN NS ns1.abx.com
IN NS ns2.abx.com
ns1.abx.com IN A 10.10.10.10
ns2.abx.com IN A 10.11.11.11
您的解析器将在其对名称服务器NS
记录的请求中获得这些 A 记录作为附加信息。然后,您的解析器会向 ns1.abx.com 或 ns2.abx.com 请求的记录,这会返回 IP,该 IP 又会传递到请求该 DNS 记录的浏览器/进程。abx.com
com
A
abx.com
大多数家庭用户设置通常会在授权的最后阶段被破坏。他们已经完成了向注册商/服务提供商购买域的过程,但未能配置该域以将委托指向他们自己的名称服务器。实际上,您必须告诉注册商您的名称服务器在哪里,然后他们才能将粘合记录放置到位以使您的授权步骤发挥作用。
这一步已经完成,解析器所使用的最后一部分已recursion
就位。这一切的前提是您的 abx.com 区域配置正确,正在向整个互联网提供服务,并且您或您的托管提供商没有设置防火墙。
互联网上有大量 DNS 工具网站,可让您查看您的域处于什么状态。(例如DNS Stuff 的 DNS 工具)。我还建议您熟悉该dig
工具,它允许您专门查询特定的名称服务器(和记录)并在输出中获得更详细的响应。
总长DR与托管提供商检查您的配置,并确保您已将域 NS 记录指向您的名称服务器 IP。确保您没有防火墙阻止连接,您的 BIND 正在运行并且正在为正确的 DNS 提供服务。使用外部工具检查外部 DNS,以检查 DNS 的状态。
答案3
为您的网站注册一个全世界都可以看到的域名。注册 DNS(域名服务)。注册商会将您的IP地址与网站名称绑定;这项服务是有偿的。