周三有同事突然问 127.0.0.1和localhost有什么不同吗,正好利用这个机会整理一下,这个虽然是大家常见的知识点,但是估计很多胖友已经遗忘了,那么跟我一起开启回顾之旅吧
localhost 是一个域名,在过去它指向127.0.01这个ip地址。在操作系统支持ipv6之后,它同时指向ipv6的地址[::1]
127.0.0.1在系统的正确解释是:本地地址(本地地址或者回环地址)。
他们的解析都是通过本地hosts文件来引导,之后系统将localhost解析为127.0.0.1
localhost | 127.0.0.1 |
---|---|
在计算机网络中,*localhost是回路网络接口的一个标准主机名*,相对应的ip地址是127.0.0.1 | 127.0.0.1是一个环回地址,根本不是一个网络地址 |
- localhost是一个保留域名,同时也是一个特殊的DNS主机名,代表分配给引用这个名称的计算机的ip地址,即所在计算机本身。 - localhost是不经过网卡传输的,它不受网络防火墙和网卡相关的限制。 | 127.0.0.1是通过网卡传输的,依赖网卡,并受到网络防火墙和网卡相关的限制。 |
在host文件中,localhost指向的ip是127.0.0.1,可通过编辑host文件改变指向 | 一个重要应用方法: ping 127.0.0.1 功能:检测本机的回路是否正常,如果得到一个成功的ping返回,则可以认定你的IP栈是被初始化过的,TCP/IP协议安装正确。如果失败,那么你的IP栈失败,TCP/IP协议必须重新安装 |
localhost | 127.0.0.1 | 本机IP | |
---|---|---|---|
网络 | 不联网 | 不联网 | 联网 |
传输 | 不使用网卡,不受防火墙和网卡的限制 | 网卡传输,受防火墙和网卡的限制 | 网卡传输,受防火墙和网卡的限制 |
访问 | 本机访问 | 本机访问 | 本机访问 |
localhot是不经网卡传输的!它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成IP,也不会占用网卡、网络资源。
ps:
1、整个127.* 网段通常被用作 loopback 网络接口的默认地址,按惯例通常设置为 127.0.0.1。这个地址在其他计算机上不能访问,就算你想访问,访问的也是自己,因为每台带有TCP/IP协议栈的设备基本上都有 localhost/127.0.0.1。
2、本机地址通常指的是绑定在物理或虚拟网络接口上的IP地址,可供其他设备访问到。
3、localhost是个域名,性质跟 “www.baidu.com” 差不多。不能直接绑定套接字,必须先gethostbyname转成IP才能绑定。
4、127.0.0.1 是绑定在 loopback 接口上的地址,如果服务端套接字绑定在它上面,你的客户端程序就只能在本机访问。