以下是我的 中的条目/etc/hosts
。
我想知道最后一项 ( fe80::1%lo0 localhost
) 是做什么的。
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
答案1
这是一个 IPv6 地址。fe80:: 块是为链路本地地址保留的。链路本地地址用于仅发送到直接连接设备(未路由)的数据包。网络发现协议 (NDP) 是链路本地地址的最大用户(NDP 在 IPv6 中取代了 ARP 和 DHCP)。
您的每个接口都将具有不同的链路本地地址,该地址以 fe80:: 开头,并且(通常)以接口的 MAC 地址(EUI-64 格式)的修改版本结尾,以确保您在网段上拥有唯一的地址。对于您的环回接口,没有任何其他东西连接到它,因此它可以使用 fe80::1 的地址而不必担心冲突,这就是为什么 fe80::1 通常用作“本地主机”地址(相当于 127.0.0.1 的 IPv6 地址)的原因。
答案2
eater 的回答非常好。正如上面所说,IPv6 本地链路地址的形式fe80:*
实际上fe80::/10
意味着只匹配前十位,fe8*:*
因此范围是 fe80::0 ..febf:*
检查我的算法。
这些地址相当于169.254.\*.\*
IPv4 中的地址,尽管 IPv4 中的地址使用得不那么频繁。
在 IPv6 中拥有多个地址而在 IPv4 中只有一个地址是很常见的。同时拥有一个fe80::
地址和一个全局有意义的可路由 IPv6 地址(例如2001:*
)是规则,而不是例外。不幸的是,应用程序和操作系统在 IPv4 中往往不会这样做,也就是说,接口往往不会有多个 IPv4 地址,而且我还没有看到一个接口169.254.\*.\*
同时拥有一个地址和另一种地址的情况。
在 IPv4 中同时使用这两种类型可以避免很多麻烦和痛苦,例如套件以错误的顺序启动,个人电脑在路由器或服务器之前启动,并且个人电脑为自己分配一个169.254.\*.\*
地址并只使用该地址,而不是在后来从路由器或服务器得知它们应该在互联网上的位置时添加第二个全局有意义的可路由地址。
答案3
fe80::..... a link local address
链路本地 IPv6 地址(由 fe80: 前缀表示)仅在该主机接口所连接的直接网络链路上有效。