Steven Black 的 hosts 文件中的每个类似 localhost 的记录是什么意思,以及如何将其包含在内?

Steven Black 的 hosts 文件中的每个类似 localhost 的记录是什么意思,以及如何将其包含在内?

史蒂文·布莱克的具有基本扩展的统一主机文件开头包含以下块:

127.0.0.1 localhost
127.0.0.1 localhost.localdomain
127.0.0.1 local
255.255.255.255 broadcasthost
::1 localhost
::1 ip6-localhost
::1 ip6-loopback
fe80::1%lo0 localhost
ff00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
0.0.0.0 0.0.0.0

它定义了三个记录localhost(我甚至不知道为同一个域名包含多个记录是否有效)和一些我不确定是否应该存在的其他记录(我实际上认为 hosts 文件应该是空的,除非你有理由覆盖某些东西或定义自定义域名)。

这些行中的每一行都是什么意思,在什么情况下可以使用它以及为什么要将其包含在 hosts 文件中?

答案1

这是我们都熟知并喜爱的标准 IPv4 本地主机:

127.0.0.1 localhost

::1是的 IPv6 版本,127.0.0.1因此这里的内容如下:

::1 localhost

这是本地链接地址的 IPv6 范围;这大致相当于169.254.*.*IPv4:

fe80::1%lo0 localhost

作为维基百科上有解释,请注意第二段;粗体强调是我的:

在 Internet 协议版本 6 (IPv6) 中,地址块fe80::/10已保留用于链路本地单播寻址。在链路本地地址的网络组件的 64 位中,最高 10 位 (1111111010) 对应于 IANA 为链路本地地址保留的“全局路由前缀”,而“子网 ID”(其余 54 位)为零。

与 IPv4 不同,IPv6 要求每个启用 IPv6 协议的网络接口上都有一个链路本地地址,即使还分配了可路由地址。因此,IPv6 主机通常会为每个启用 IPv6 的网络接口分配多个 IPv6 地址。邻居发现协议的 IPv6 子层操作以及某些其他基于 IPv6 的协议(例如 DHCPv6)需要链路本地地址。

答案2

看起来以下内容只是取自 Ubuntu 中的标准 hosts 文件:

ff00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

以下是 MacOS 中的:

255.255.255.255 broadcasthost
fe80::1%lo0 localhost

所以我猜测他们只是包含了所有类型的主机文件的内容。

相关内容