无法通过IP地址访问本地主机

问题描述 投票:0回答:2

我正在查看本地托管的网站(使用

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 地址访问本地托管站点时没有遇到问题。你知道需要改变什么吗?

networking localhost
2个回答
68
投票

如果您可以通过

127.0.0.1
(或
localhost
)访问在您自己的计算机上运行的服务器,但不能通过计算机的 IP 地址访问,这意味着服务器软件配置为仅侦听 localhost 接口。这是一个配置项,为了避免暴露潜在的不安全服务器,许多服务器程序都预先配置为仅在本地主机上侦听。这样您就可以在暴露服务器之前安全地在本地进行测试。

要启动服务器“侦听此计算机上的所有接口”,请将其配置为绑定到

host=0.0.0.0
。这很方便,但如果机器有多个接口,可能会导致安全问题。


3
投票

如果您使用的是 Python 3.8,这是一个“已知错误”。解决方案是使用 -bind 参数手动指定 IP 地址或使用 Python 3.9。

python -m http.server 8000 --bind 127.0.0.1

(或

0.0.0.0
<insert-your-ip-here>
    

© www.soinside.com 2019 - 2024. All rights reserved.