编辑 /etc/hosts

编辑 /etc/hosts

我刚刚在 Linode 注册了一个 VPS,正在按照初学者的设置说明进行操作,但对 /etc/hosts 的编辑有点困惑。它建议我按如下方式编辑它(其中 12.34.56.78 是我的服务器的 IP):

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      something.yourdomain.com     something

该文件当前内容如下:

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
...

首先,我使用两条 localhost 线路中的哪一条有关系吗?

其次,我不明白第二行的用途 - 由于第一行指的是 IP 127.0.0.1,我假设这些是本地地址,那么我的服务器地址有什么意义呢?另外,我目前不想要任何子域 - 我是否不应该包含此行,或者将其更改为其他内容?这会影响我的域名和服务器之间的 DNS 连接吗?

我对此还不太熟悉,因此对于任何愚蠢的问题,我提前表示歉意,并感谢您提供的任何帮助。

答案1

第一行是回送,即返回到您自己的服务器。这是每个计算机系统固有的。

第二行是确定服务器被分配了哪个IP,以及服务器应该服务哪个域。

您希望文件中包含这两行。您甚至可以包含更多类似于第二行的行,每个要服务的域一行。

答案2

/etc/host 中每个条目的格式为:

[互联网地址] [域名] [别名]

  • 互联网地址 - 标准 IP 地址,即 127.0.0.1
  • 域名 - 完全限定域名,FQDN,即 www.google.com
  • 别名-此字段是可选的,即localhost

主机文件中引用 127.0.0.1 的第一行也可以像这样修改:

127.0.0.1 本地主机

您在此文件中设置的另一行在 DNS 解析中具有优先权,您的服务器在查询 DNS 服务器之前会查看此文件 /etc/host 以解析 IP 地址中的 FQDN,因此请仔细编辑此文件。

答案3

Aleroot 的回答大部分是正确的,只需稍微修改一下,即文件名为 /etc/hosts。

还请注意,我见过的大多数现代 Linux 系统上都有一个文件 /etc/host.conf,它控制着域名解析的顺序;我见过的默认顺序是

hosts
dns

hosts 文件在任何 DNS 查找之前使用。因此,务必要小心将哪些主机放入 /etc/hosts 中,因为它们永远不会查看 DNS。

例如,我曾见过有人在 /etc/hosts 文件中为主机 FOO 添加条目。几个月或几年后,当 FOO 的 DNS 发生变化时,他们想知道为什么该机器无法访问 FOO。问题出在 /etc/hosts 中的硬编码条目上。

相关内容