it-swarm.cn

Linux上/ etc / hosts的格式(不同于Windows?)

在此问题下粘贴的是来自Linux(CentOS)和Windows计算机的/etc/hosts文件的示例。 Linux文件的IP地址后面有两个选项卡式条目(即localhost.localdomain localhost),而Windows只有一个。如果要在Windows中编辑hosts文件以使用计算机名(etest)而不是localhost,则只需将Word localhost替换为所需的计算机名。机器不必是域的一部分。

在Linux机器中,两个条目localhost.localdomainlocalhost似乎表明我将需要该机器成为域的一部分。这是真的?

我可以简单地将两个条目都编辑为etest,以使其显示为:

127.0.0.1       etest etest

还是要求我用域名替换一个条目?

另外,请让我知道Linux计算机上/etc/hosts文件的第二行是什么。

::1     localhost6.localdomain6 localhost6

hosts在Linux机器上的文件:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

Windows机器上的hosts文件:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to Host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding Host name.
# The IP address and the Host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client Host

127.0.0.1       localhost
24
Thomas

您始终希望127.0.0.1地址首先解析为localhost。如果有一个域,您也可以使用它,但请确保将localhost列在第二位。如果要为计算机添加别名,该别名将查找回送地址,则可以继续在该行上将它们添加为以空格分隔的值。在此处指定域是可选的,但不要从选项中删除“ localhost”。

14
Caleb

在Linux和Windows上,/etc/hosts的格式相同:

IP address        hostname [hostalias]...

其中的括号是指示某些可选内容(不要实际键入)的常用方式,而圆点(...)表示可以有多个。

您不必使您的主机成为域的一部分。试试看。但是,如果您没有真实的域名,最好使用.localdomain。由于 /etc/resolv.conf 中的ndots选项,它可以使主机名解析更快一些。

请注意,从这个意义上说,域是指DNS域(例如google.comstackexchange.com),而不是Windows域或类似的域。

::1开头的行用于 IPv6 。在新的寻址方案下,::1类似于127.0.0.1。运行ifconfig lo,您应该看到它有两个地址。请注意以inet6开头的条目。

$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
...

有关更多详细信息,请参见 hosts(5)手册页

23
Mikel

我不能说Windows与Linux有何不同,但是本地计算机定义的格式会影响您从“主机名”命令获得的结果。

我发现最一致有效的格式是:

127.0.0.1 etest.mydomain.com etest localhost

我发现重要的是首先拥有FQDN,之后具有任何顺序的别名。

如果您尝试在IP地址之后重新排列名称,然后使用“主机名-s”(简称)和“主机名-f”(完全限定域名或FQDN)命令,您会明白我的意思。它看起来应该像这样:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

“主机名”本身应返回您在/etc/conf.d/hostname或/ etc/hostname中为主机输入的任何名称(文件的位置因分布而异,但应在/ etc下的某个位置找到)。

如果更改名称的顺序,则可能会发现“主机名-f”会给您类似“本地主机”或“主机名:系统错误”的响应。我发现唯一可以正常工作的安排是将FQDN放在首位。

我总是以相同的方式设置IPv6本地地址行(:: 1),即:

::1 etest.mydomain.com etest localhost

我知道有些发行版将IPv6名称设置为ip6-localhost。我尚未真正使用IPv6,因此无法评论此行的最佳设置是什么。我可以说,在IPv4网络中,两行名称相同。

6
Angelo Babudro

保持奴隶主机文件为

127.0.0.1 localhost

保留主主机文件为

<private ip> master
<private ip> slave1
<private ip> slave2

100%工作

0
Puneet