127.0.0.1、localhost、0.0.0.0的区别

  在开发web应用的测试环境中,如果希望同一个局域网的同事通过内网IP访问自己的应用,则需要把web服务监听的ip地址改为0.0.0.0。为什么用127.0.0.1不行,而用0.0.0.0就可以呢?

  flask文档有提到

app.run(host=‘0.0.0.0‘)

  会让操作系统监听所有的公网ip。在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。 一般我们自己的机器都会有防火墙之类的东西阻止非此局域网的IP访问,所以测试时才需要其他人的机器与自己接入同一个局域网。

  而作为IP地址,0.0.0.0意味着“这个网络”或者“这个主机”,全0的IP地址作为网络号指的是当前网络。0.0.0.0允许机器在不知道网络号的情况下访问自己所在的网络。

  因此,当我们在本地启动flask应用时,在浏览器输入0.0.0.0:5000,无论有无接入互联网都可以访问flask应用,因为机器访问的是自己所在的网络。

  所有127.xx.yy.zz形式的地址保留给回环测试用,发送到该地址的数据包并没有被真正放在线路上,它们如同入境数据包一样在本地处理。

  而127.0.0.1是一个回环地址,通过这个地址我们只能访问发出此次访问的同一台主机,目的地址为“127.0.0.1”的数据包不会通过网关,因此该数据包不会出现在网络传输过程中。如果一个服务监听127.0.0.1,其实它只监听本机对此服务的访问。

  localhost是一个别名,默认表示IP地址127.0.0.1,也可以在/etc/hosts中设置为其他IP地址。在终端ping localhost可以看到localhost被解析为127.0.0.1

MacBook-Pro-2:~ zixiluo$ ping localhost

PING localhost (127.0.0.1): 56 data bytes

64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.036 ms

64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.081 ms

64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.084 ms

64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.082 ms

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #f4f4f4; background-color: #000000 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #f4f4f4; background-color: #000000 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #f4f4f4; background-color: #000000 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco; color: #f4f4f4; background-color: #000000 }
span.s1 { }

原文地址:https://www.cnblogs.com/luozx207/p/9896804.html

时间: 2024-11-09 00:58:06

127.0.0.1、localhost、0.0.0.0的区别的相关文章

Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

在部署的时候出现Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.也就是我们限定了部署的时间导致的错误,经过在网上的查找,找到了以下的解决方案: 我们找到当前工程的workplace目录,然后按下面的操作:找到workspace\

127.0.0.1与localhost与ip的区别

127.0.0.1与localhost与ip的区别 May 18, 2014 localhost 不联网不使用网卡,不受防火墙和网卡限制本机访问 一般使用 本地套接字文件AF_UNIX 应用程序一般约定使用localhost时优先查本地套接字连接. mysqlclient 与 mysqlserver 就是这样的约定 127.0.0.1 不联网网卡传输,受防火墙和网卡限制本机访问 127.0.0.1 是主机IP堆栈内部的IP地址..在windows/unix IP协议栈内部发现要发网的ip地址是1

(mysql+php+apache)127.0.0.1和localhost可以连接mysql服务器,而ip却不能

127.0.0.1和localhost可以连接mysql服务器,但是对应的ip却不能,并且报错: Can‘t connect to MySQL server  on  "10.0.73.25"(111) 可能是以下原因: 1.网络不通:ping 10.0.73.25  发现能ping通 ,排除此原因. 2.mysql配置问题:打开mysql的配置文件mysql.cnf(linux下的路径一般为/etc/mysql/mysql.cnf),产看skip-networking和bind_ad

Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds...

仰天长啸 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds... 当启动tomcat时候出现 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the serve

Server Tomcat v7.0 Server at localhost failed to start解决办法

今晚搞了下tomcat,在调试的时候发现报了这样一个错误Server Tomcat v7.0 Server at localhost failed to start 首先,确认了端口号8080是不是被占用: 在浏览器中访问(http://127.0.0.1:8080)或运行telnet命令(telnet 127.0.0.1 8080)来验证端口是否被占用. 如果是,双击tomcat修改端口 经排查我这里不是这种情况,是由于电脑原因,导致启动时间超时,这么尴尬的原因也是没谁了,解决办法同样双击to

(转)Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds

仰天长啸 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds... 当启动tomcat时候出现 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the serve

'Starting Tomcat v8.0 Server at localhost' has encountered a problem.

'Starting Tomcat v8.0 Server at localhost' has encountered a problem. “在启动Tomcat的本地主机服务器V8.0”遇到了问题. Problem Occurred 发生问题 详细信息 Port 8080 required by Tomcat v8.0 Server at localhost is already in use. The server may already be running in another proce

wampServer2.0无法打开localhost

wampserver安装成功后所有的服务都已经启动了,但当我在浏览器中输入localhost时显示空白页或连接超时,请问这是怎么回事呢,端口也更换为8080端口了. 就是如果你更换了端口号那么你就应该把相应的端口号也带上,比如localhost:8080这样应该就可以了,因为只有80端口是默认才不用输入的 wampServer2.0无法打开localhost,布布扣,bubuko.com

Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds

用SSM搭建的项目,部署时出现了以下错误 Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. 启动时间设置得太短,导致无法正常启动. 我使用的是MyEclipse2015,直接通过页面进行修改 也可以通过修改配置文件的方式解决: