最新消息:20210917 已从crifan.com换到crifan.org

【已解决】服务器中启动服务时候的IP选择:127.0.0.1 vs 0.0.0.0

Server crifan 7056浏览 0评论

折腾:

【已解决】Flask的Python服务外网无法访问

期间,需要去搞懂:

在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地址都可以访问该服务

转载请注明:在路上 » 【已解决】服务器中启动服务时候的IP选择:127.0.0.1 vs 0.0.0.0

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
91 queries in 0.179 seconds, using 23.36MB memory