/etc/hosts 中“fe80::1%lo0 localhost”的相关性是什么?

36 networking ipv6 hosts-file macos

以下是我的/etc/hosts.

我想知道最后一个条目 ( fe80::1%lo0 localhost)是什么。

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Run Code Online (Sandbox Code Playgroud)

eat*_*ter 25

这是一个 IPv6 地址。fe80:: 块是为链接本地地址保留的。链路本地地址用于仅发送到直接连接的设备(未路由)的数据包。网络发现协议 (NDP) 是链路本地地址的最大用户(NDP 可以替代 IPv6 中的 ARP 和 DHCP)。

您的每个接口都有一个不同的链路本地地址,以 fe80:: 开头,(通常)以接口的 MAC 地址(EUI-64 格式)的修改版本结尾,以确保您在网段上拥有唯一的地址。在你的环回接口的情况下,没有任何其他连接到它,所以它可以使用 fe80::1 的地址而不必担心冲突,这就是为什么 fe80::1 通常用作“本地主机”地址的原因--IPv6 相当于 127.0.0.1。

  • 我还应该提到“%lo0”部分是必要的,因为如果没有明确绑定到接口,任何本地链接地址都是不明确的。 (4认同)
  • 环回接口上没有 NDP,并且“::1”用作“127.0.0.1”的 IPv6 等效项,而不是“fe80::1%lo0”。 (2认同)

小智 5

以上来自食客的优秀回答。如上所述,IPv6 链路本地地址的形式fe80:*实际上fe80::/10意味着仅匹配前十位,fe8*:*因此范围是 fe80::0 .. febf:*。检查我的算术。

这些地址相当于169.254.\*.\*IPv4 中的地址,尽管 IPv4 对应物的使用要少得多。

在 ipv6 中有多个地址而在 IPv4 中只有一个地址是很常见的。拥有fe80::地址和具有全局意义的可路由 IPv6 地址(2001:*例如)是规则而不是例外。不幸的是,应用程序和操作系统在 IPv4 中并不倾向于这样做,也就是说,接口往往没有多个 IPv4 地址,而且我还没有看到接口同时说一个169.254.\*.\*地址和另一种类型地址的情况。

在 IPv4 中同时使用这两种类型可以防止很多痛苦和痛苦,例如,当套件以错误的顺序启动时,PC 在路由器或服务器之前启动,PC 为自己分配一个169.254.\*.\*地址并坚持使用该地址而不是添加第二个当他们后来从他们的路由器或服务器上找到他们应该在互联网上的位置时,这是一个具有全局意义的可路由地址。


mik*_*iku 2

 fe80::.....        a link local address
Run Code Online (Sandbox Code Playgroud)

链路本地 IPv6 地址(由 fe80: 前缀指示)仅在该主机接口所连接的直接网络链路上有效。