本地0.0.0.0服务无法访问

发布于 2022-09-30 23:09:22 字数 129 浏览 27 评论 0

在本地启动服务时指定host为0.0.0.0,port指定为8881,然后通过0.0.0.0:8881访问不到,通过127.0.0.1:8881就能访问到,在不修改host及port的情况下,怎么才能直接访问到0.0.0.0:8881呢,求指点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

超可爱的懒熊 2022-10-07 23:09:22

这个地址本身的含义只是代表本地所有可用ip而已。通常你应该用任意一个可以访问到本机的ip访问,比如127.0.0.1(本地环回地址), 192.168.1.x(局域网地址), x.x.x.x(外网ip映射)等等。

有趣的是对于0.0.0.0这个地址,实测在windows下会将这个地址作为访问的非法地址处理,但是在Linux下却是可以访问的,前提是你的程序必须监听的是0.0.0.0或者等效的ipv6地址[::]

测试用例,使用Python 3启动一个简易的http server:

python -m http.server
Serving HTTP on :: port 8000 (http://[::]:8000/) ...

Windows下访问会出错:

图片.png

但是Linux下没有任何问题:

图片.png

入画浅相思 2022-10-07 23:09:22

“通过 0.0.0.0:8881 访问不到”???

0.0.0.0 根本就不是一个有效的 IP 地址(它是 A 类地址下的一个保留地址),表示“本网络上的本主机”,只能用作源地址。你怎么能用它访问呢?

别人访问它当然要用它的某个网卡分配的 IP 了,无论是子网 IP 还是公网 IP 都可以,如果是本机也可以用回环地址 127.0.0.1。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文