localhost,127.0.0.1 和 本机IP 三者的区别

 
1、首先 localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址。在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 。

在 Windows 中,这个域名是预定义的,从 hosts 文件中可以看出:
localhost,127.0.0.1 和 本机IP 三者的区别
而在 Linux 中,其定义位于 /etc/hosts 中:
localhost,127.0.0.1 和 本机IP 三者的区别
注意这个值是可修改的,比如把它改成192.068.206.1,还是可以ping通。

 
2、127.0.0.1 这个地址通常分配给 loopback 接口。loopback 是一个特殊的网络接口(可理解成虚拟网卡),用于本机中各个应用之间的网络交互。只要操作系统的网络组件是正常的,loopback 就能工作。Windows 中看不到这个接口,Linux中这个接口叫lo:
localhost,127.0.0.1 和 本机IP 三者的区别可以看出 lo 接口的地址是 127.0.0.1。事实上整个 127.* 网段都算能够使用,比如你 ping 127.0.0.2 也是通的。 但是使用127.0.0.1作为loopback接口的默认地址只是一个惯例。
 
3、本机IP,确切地说,“本机地址”并不是一个规范的名词。通常情况下,指的是“本机物理网卡所绑定的网络协议地址”。由于目前常用网络协议只剩下了IPV4,IPX/Apple Tak消失了,IPV6还没普及,所以通常仅指IP地址甚至ipv4地址。