无法通过 IP 地址访问本地主机
Can't access localhost via IP address
我正在查看本地托管的网站(使用 grunt serve
,如果重要的话)。我可以通过 http://localhost:9000/
或 http://127.0.0.1:9000/
查看它,但不能通过 http://10.0.0.16:9000/
.
10.0.0.16 是我的本地 IP 地址(来自 ifconfig
或系统偏好设置),但我无法从托管它的设备或其他设备访问位于 http://10.0.0.16:9000/
的本地托管内容网络上的设备。
当我的计算机在其他网络上(仅在我的家庭网络上)时,我使用本地 IP 地址访问本地托管站点没有遇到问题。您知道需要更改什么吗?
如果您可以通过127.0.0.1
(或localhost
)访问您自己机器上的服务器运行,但不能通过计算机的IP地址访问,这意味着服务器软件已配置仅在本地主机接口上收听。这是一个配置项,为了避免暴露潜在的不安全服务器,许多服务器程序都预先配置为仅在 localhost 上侦听。这样您就可以在公开服务器之前安全地在本地进行测试。
注意0.0.0.0
表示"listen on all interfaces present on this computer"方便,但如果机器有多个接口可能会导致安全问题。
如果您使用的是 Python 3.8,则这是 known bug。解决办法是用-bind
参数手动指定IP地址或者使用Python 3.9.
python -m http.server 8000 --bind 127.0.0.1
(或0.0.0.0
、<insert-your-ip-here>
)
我正在查看本地托管的网站(使用 grunt serve
,如果重要的话)。我可以通过 http://localhost:9000/
或 http://127.0.0.1:9000/
查看它,但不能通过 http://10.0.0.16:9000/
.
10.0.0.16 是我的本地 IP 地址(来自 ifconfig
或系统偏好设置),但我无法从托管它的设备或其他设备访问位于 http://10.0.0.16:9000/
的本地托管内容网络上的设备。
当我的计算机在其他网络上(仅在我的家庭网络上)时,我使用本地 IP 地址访问本地托管站点没有遇到问题。您知道需要更改什么吗?
如果您可以通过127.0.0.1
(或localhost
)访问您自己机器上的服务器运行,但不能通过计算机的IP地址访问,这意味着服务器软件已配置仅在本地主机接口上收听。这是一个配置项,为了避免暴露潜在的不安全服务器,许多服务器程序都预先配置为仅在 localhost 上侦听。这样您就可以在公开服务器之前安全地在本地进行测试。
注意0.0.0.0
表示"listen on all interfaces present on this computer"方便,但如果机器有多个接口可能会导致安全问题。
如果您使用的是 Python 3.8,则这是 known bug。解决办法是用-bind
参数手动指定IP地址或者使用Python 3.9.
python -m http.server 8000 --bind 127.0.0.1
(或0.0.0.0
、<insert-your-ip-here>
)