localhost 和 0.0.0.0 区别

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

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

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,那么通过内网地址或外网地址都可以访问应用

发布了121 篇原创文章 · 获赞 119 · 访问量 25万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 撸撸猫 设计师: 设计师小姐姐

分享到微信朋友圈

×

扫一扫,手机浏览