认识127.0.0.1和0.0.0.0

启动WEB服务时需要绑定IP,日常开发,我们往往这么做,填写0.0.0.0或者127.0.0.1。都work,但两者是不同的,这里总结下两者的不同及注意事项

如下为ExpressJS的一段代码

1
2
3
app.listen(conf.server.port, '0.0.0.0', function () {
console.log(`Example app listening on port http://0.0.0.0:${conf.server.port}!`);
});

127.0.0.1

  1. 该地址为环回IP地址,假如服务绑定该地址,那么使用外网IP,或局域网IP都是不可访问的。

  2. 假如把机器网断了,当执行ping命令时是有返回的,原因是该地址并不会真的走网卡发送请求出去

    https://static.1991421.cn/2022/2022-10-23-123702.jpeg

  3. 当绑定该地址时,访问的话,经常也会使用localhost,但严格来说两者并不对等,因为1个是IP地址,另一个是域名,查看hosts文件也会发现一般会有127.0.0.1 localhost,之所以可以使用localhost,原因在这里

0.0.0.0

  1. 该地址表示本机的所有地址,局域网/外网,所以当绑定时,使用哪个地址都可以正常访问。

写在最后

综上,在配置绑定IP时,需要考虑安全性,从而决定选择哪种配置。只是内部访问就不要配置0.0.0.0

相关文档