127.0.0.1 / localhost / 0.0.0.0这几个IP的区别
1. 127.0.0.1
127.0.0.1是一个 IPV4 地址。IPV4 地址有 32 位,一个字节有 8 位,共 4 个字节。
其中,127 开头的都属于回环地址,也是 IPV4 的特殊地址,127.0.0.1 是众多回环地址中的一个。
IPv4 的地址是 32 位的,2的32次⽅,⼤概是 40+亿 。地球光⼈⼝就76亿了,40亿IP这点ᰁ,塞⽛缝
都不够,实际上IP也确实⽤完了。
所以就有了 IPV6 , IPv6 的地址是 128 位的,⼤概是2的128次⽅≈10的38次⽅。据说地球的沙⼦数ᰁ
⼤概是 10的23次⽅,所以IPV6的IP可以认为⽤不完。
IPV4以8位⼀组,每组之间⽤ . 号隔开。
IPV6就以16位为⼀组,每组之间⽤ : 号隔开。如果全是0,那么可以省略不写。
在IPV4下的回环地址是 127.0.0.1 ,在 IPV6 下,表达为 ::1 。中间把连续的0给省略了,之所以不是7
个 冒号,⽽是2个冒号: , 是因为⼀个 IPV6 地址中只允许出现⼀次两个连续的冒号。
在IPV4下⽤的是 ping 127.0.0.1 命令。在IPV6下⽤的是 ping6 ::1 命令。
2. localhost
localhost 不是 IP,它是一个域名,和 " baidu.com " 形式相同,可以被配置为任意的IP地址,通常通过hosts文件进行更改,但通常情况下都指向127.0.0.1。
所以默认情况下,使用 localhost 和使用 127.0.0.1 确实是没区别的。
3. 0.0.0.0
0.0.0.0 在 IPV4 中表示的是⽆效的⽬标地址,执⾏ ping 0.0.0.0 ,是会失败的。
启动服务器的时候,⼀般会 listen ⼀个 IP 和端⼝,等待客户端的连接。如果此时 listen 的是本机的 0.0.0.0 , 那么它表示本机上的所有IPV4地址。
举个例⼦。刚刚提到的 127.0.0.1 和 192.168.31.6 ,都是本机的IPV4地址,如果监听 0.0.0.0 ,那么
⽤上⾯两个地址,都能访问到这个服务器。
客户端 connect 时,不能使⽤ 0.0.0.0 。必须指明要连接哪个服务器IP。文章来源:https://www.toymoban.com/news/detail-828233.html
总结
- 127.0.0.1 是回环地址。 localhost 是域名,但默认等于 127.0.0.1 。
- ping 回环地址和 ping 本机地址,是⼀样的,⾛的是lo0 “假⽹卡”,都会经过⽹络层和数据链路层
等逻辑,最后在快要出⽹卡前狠狠拐了个弯, 将数据插⼊到⼀个链表后就软中断通知 ksoftirqd 来进
⾏收数据的逻辑,压根就不出⽹络。所以断⽹了也能 ping 通回环地址。 - 如果服务器 listen 的是 0.0.0.0 ,那么此时⽤ 127.0.0.1 和本机地址都可以访问到服务。
来源:图解网络-小林coding文章来源地址https://www.toymoban.com/news/detail-828233.html
到了这里,关于127.0.0.1 / localhost / 0.0.0.0 这几个IP的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!