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
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 ...
- MySQL 127.0.0.1和localhost本质区别
登录方式: [root@10-4-14-168 ~]# mysql -uroot -p Enter password: 查看权限表 mysql> SELECT user,host,passwor ...
- 127.0.0.1与localhost与ip的区别
127.0.0.1与localhost与ip的区别 May 18, 2014 localhost 不联网不使用网卡,不受防火墙和网卡限制本机访问 一般使用 本地套接字文件AF_UNIX 应用程序一般约 ...
- 127.0.0.1和localhost不能正确映射的问题
可能引起的问题: 检查:分别ping一下127.0.0.1和localhost 以上是正确演示,不匹配的话,ping localhost会返回: 解决方案: 可能1: 在浏览器中打开http://12 ...
- 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 v7.0 Server at localhost failed to start解决办法
今晚搞了下tomcat,在调试的时候发现报了这样一个错误Server Tomcat v7.0 Server at localhost failed to start 首先,确认了端口号8080是不是被 ...
- (转)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时候出现 S ...
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
错误:Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds 错误提示就是我们限定了部署的时间导致的错 ...
- Could not publish server configuration for Tomcat v6.0 Server at localhost.
经常在使用tomcat服务器的时候 总会发生一些莫名其妙的错误. 就像下面这个错误: 在配置文件中存在多个/MyWeb的配置,导致不能发布服务. 错误信息: Could not publish ser ...
随机推荐
- Qt多线程-QThread
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt多线程-QThread 本文地址:http://techieliang.com/2 ...
- Maven的setting配置文件
一.Maven的setting配置文件 和 在Eclipse中对Maven的正确配置. 1.Maven的配置文件(Maven的安装目录/conf/settings.xml ) 和 Maven仓库下(默 ...
- js动态显示指定的时间
<p id="timeShow">17:0:50</p> <script> setInterval("time()", 10 ...
- node web 应用热更新
在每次更改完 node.js 项目后,我们都需要先将 node.js停止(快捷键: Ctrl+C),然后再通过命令再次运行,这样特别麻烦.这里我推荐使用 supervisor工具, npm 安装命令为 ...
- Guide: Solr performance tuning--转载
原文地址:http://h3x.no/2011/05/10/guide-solr-performance-tuning Introduction I have for the last year be ...
- bzoj5123 [Lydsy12月赛]线段树的匹配
题意: 线段树是这样一种数据结构:根节点表示区间 [1, n]:对于任意一个表示区间 [l, r] 的节点,若 l < r, 则取 mid = ⌊l+r/2⌋,该节点的左儿子为 [l, mid] ...
- Angel Beats,AFOer Beats?
意识模糊的时候适合写一些奇怪的东西? NOI退役之后我尝试了很多方法调节心态.(比如做OI题,出OI题,学文化课,读书,吃饭,睡觉,水群,看番,推galgame). 然而看啥都是退役的画风.比如说推W ...
- bzoj2314: 士兵的放置(树形DP)
0表示被父亲控制,1表示被儿子控制,2表示被自己控制.f表示最少士兵数,g表示方案数. 转移贼难写,写了好久之后写不下去了,看了一眼题解,学习了...原来还可以这么搞 比如求f[i][1]的时候,要在 ...
- Linux之多线程20160705
简单介绍一下多线程的API,线程的概念类似与一个任务或者说一个函数,线程一旦被创建就会运行,具体使用方法可以在Linux下使用man 命令查看: pthread_t:线程ID pthread_attr ...
- 虚拟机安装ubuntu14.04.5系统
参考教程 在vitualbox安装 ubuntu14.04.2 LTS教程 http://jingyan.baidu.com/article/46650658228345f549e5f8cc.html ...