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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值