127.0.0.1,0.0.0.0和localhost
1个回答
展开全部
127.0.0.1 ,172.0.0.1是回送地址,localhost是本地DNS解析的 127.0.0.1 的域名,在hosts文件里可以看到。一般我们通过ping 127.0.0.1来测试本地网络是否正常。其实从127.0.0.1~127.255.255.255,这整个都是回环地址。这边还要注意的一点就是localhost在了IPV4的是指127.0.0.1而IPV6是指::1。当我们在服务器搭建了一个web服务器的时候如果我们监听的端口时127.0.0.1:端口号的时候,那么这个web服务器只可以在服务器本地访问了,在别的地方进行访问是不行的。(127.0.0.1只可以在本地ping自己的,那么你监听这个就只可以在本地访问了)
然后我们来讲讲 0.0.0.0 ,如果我们直接ping 0.0.0.0是不行的,他在IPV4中表示的是无效的目标地址,但是在服务器端它表示本机上的所有IPV4地址,如果一个服务有多个IP地址(192.168.1.2和10.1.1.12),那么我们如果设置的监听地址是0.0.0.0那么我们无论是通过IP192.168.1.2还是10.1.1.12都是可以访问该服务的。在路由中, 0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
最后讲讲本地IP, 如果我们监听的是IP的话那么只有通过监听的IP才可以访问我们的对应的服务。
本机上的服务,如果通过localhost访问,可以不经过网卡,并且不受防火墙的限制。如果不经过网卡,那客户端和服务端要如何通信?答案就是socket。比如上面例子中的/tmp/mysql.sock。也因为不需要经过网卡,不需要TCP/IP协议的层层封包和层层解包过程,性能上会更出色一些。本机上的服务,如果通过127.0.0.1访问,需要经过网卡,也可能受到防火墙限制。
然后我们来讲讲 0.0.0.0 ,如果我们直接ping 0.0.0.0是不行的,他在IPV4中表示的是无效的目标地址,但是在服务器端它表示本机上的所有IPV4地址,如果一个服务有多个IP地址(192.168.1.2和10.1.1.12),那么我们如果设置的监听地址是0.0.0.0那么我们无论是通过IP192.168.1.2还是10.1.1.12都是可以访问该服务的。在路由中, 0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
最后讲讲本地IP, 如果我们监听的是IP的话那么只有通过监听的IP才可以访问我们的对应的服务。
本机上的服务,如果通过localhost访问,可以不经过网卡,并且不受防火墙的限制。如果不经过网卡,那客户端和服务端要如何通信?答案就是socket。比如上面例子中的/tmp/mysql.sock。也因为不需要经过网卡,不需要TCP/IP协议的层层封包和层层解包过程,性能上会更出色一些。本机上的服务,如果通过127.0.0.1访问,需要经过网卡,也可能受到防火墙限制。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询