折腾:
期间,需要去搞懂:
在CentOS的服务器中,启动了Flask的一个服务
对于IP选择
之前是127.0.0.1,结果外网无法访问
该用0.0.0.0,外网就可以访问了。
要去搞清楚两者的区别。
127.0.0.1 vs 0.0.0.0
What is the Difference Between 127.0.0.1 and 0.0.0.0?
ip – What is the difference between 0.0.0.0, 127.0.0.1 and localhost? – Stack Overflow
【总结】
127.0.0.1:是个(特殊的)IP地址,往往被分配给了loopback或仅局域网可以访问的接口local-only interface
这是一个伪照的,假的,网络适配器,其只能于同主机host内通信
常用于:让一个可以支持网络的程序,仅仅响应于同主机host内的客户端
一个程序监听127.0.0.1的话,则只能接受来自于本地的访问
localhost:往往是127.0.0.1这个IP地址的主机名hostname
- Linux中是/etc/hosts设置的
- Windows中的等价物是:hosts,往往在%WINDIR%中设置的
- -》换句话说,你也可以设置为其它名字
- -》试试ping localhost,则会输出:127.0.0.1
(RunningFast) ➜ RunningFast ping localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.035 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.045 ms ^C <div–<- localhost ping statistics — 2 packets transmitted, 2 received, 0% packet loss, time 1980ms rtt min/avg/max/mdev = 0.035/0.040/0.045/0.005 ms |
0.0.0.0:本身包含很多方面的含义,但是此处指的是:
当一个服务器监听这个IP地址的话,意味着:监听所有的网络请求
(对应着IP地址为127.0.0.1的)loopback这个适配器adapter的请求,就像其它本机中的其它的网络适配器一样。
-》
- 127.0.0.1:loopback地址,和localhost一样,
- localhost:是127.0.0.1的主机名
- 0.0.0.0:是个不可被路由的元地址,用于指定无效的,未知的,不可使用的目标,相当于:没有特定的IP地址的占位符
- 对于路由入口来说:往往指的是默认的路由
- 对于服务器来说:意味着本机中的所有的IPv4的地址
- 如果一个服务器有两个IP地址:192.168.1.1和10.1.2.1,则本机中的一个服务监听0.0.0.0的话,则两个IP地址都可以访问该服务