localhost 和 0.0.0.0 区别

刺骨的言语ヽ痛彻心扉 2022-04-17 06:53 484阅读 0赞

今天在研究 webpack-dev-server 配置 host 时,看到手册中这样的一句话:

指定使用一个 host,默认是 localhost,如果你希望服务器外部可访问,制定如下:

  1. host: "0.0.0.0"

不过我这样设置后,同样能够在本地通过 localhost 访问到,不禁想要掰一掰两者的区别,在这里做个总结

原因

每个主机都可能有多个 ip 地址,比如多个网卡或多 ip,127.0.0.1 是本地环回地址,专供自己访问自己,速度快(不用经过整个协议栈),永远都不能出现在主机外部的网络中,所以只适合用在开发环境。

localhost 只是 127.0.0.1 的别名

0.0.0.0 有几个不同的含义,不过当告诉服务器监听了 0.0.0.0,意味着监听每一个可用的网络接口,从服务器进程的角度来看,IP 地址为 127.0.0.1 的环回适配器看起来就像机器上的任何其他网络适配器一样,因此被告知监听 0.0.0.0 的服务器也将接受该接口上的连接。

因此在实际应用中,一般我们在服务端绑定端口的时候可以选择绑定到 0.0.0.0,这样我的服务访问就可以通过主机的多个 ip 地址访问我的服务。

比如我有一台服务器,一个外网地址 A,一个内网地址 B,如果我绑定的端口指定了 0.0.0.0,那么通过内网地址或外网地址都可以访问应用

发表评论

表情:
评论列表 (有 0 条评论,484人围观)

还没有评论,来说两句吧...

相关阅读

    相关 笔试题总结0000

    1.选一个正确的(A)(此题答案不知道是不是正确的,希望各位指正) > A静态链接库不能有同名全局函数 > B动态链接库不能有同名全局函数 > C两个静态链