在本地启动服务时指定host为0.0.0.0,port指定为8881,然后通过0.0.0.0:8881访问不到,通过127.0.0.1:8881就能访问到,在不修改host及port的情况下,怎么才能直接访问到0.0.0.0:8881呢,求指点
在本地启动服务时指定host为0.0.0.0,port指定为8881,然后通过0.0.0.0:8881访问不到,通过127.0.0.1:8881就能访问到,在不修改host及port的情况下,怎么才能直接访问到0.0.0.0:8881呢,求指点
“通过 0.0.0.0:8881 访问不到”???
0.0.0.0 根本就不是一个有效的 IP 地址(它是 A 类地址下的一个保留地址),表示“本网络上的本主机”,只能用作源地址。你怎么能用它访问呢?
别人访问它当然要用它的某个网卡分配的 IP 了,无论是子网 IP 还是公网 IP 都可以,如果是本机也可以用回环地址 127.0.0.1。
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答4.1k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
7 回答1.6k 阅读
这个地址本身的含义只是代表本地所有可用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:
Windows下访问会出错:
但是Linux下没有任何问题: