如何访问本地网络上的服务器 运行

How to access a server running on a local network

我正在 运行 在 Mac 上安装一个基于 Django 的服务器。当 运行 使用默认值 "python manage.py runserver" 时,我可以使用“http://127.0.0.1:8000/”通过浏览器访问它。

问题是我想从网络上的其他机器访问它。当我进入网络设置时,我可以看到 IP 是 10.0.0.15。在过去,我曾经能够使用 "python manage.py runserver 10.0.0.15:8000" 运行 基于 Django 的服务器,然后使用本地网络中任何其他机器的该地址访问它,包括机器 运行ning服务器。

现在,当我尝试使用“http://10.0.0.15:8000/”访问它时,即使是从同一台机器上的浏览器,我也可以在终端中看到服务器已收到请求,但我得到了错误请求 (400) 响应。我做错了什么?

尝试运行python manage.py runserver 0.0.0.0:8000

我按照 Leonardo Andrade 的建议尝试了 运行ning python manage.py runserver 0.0.0.0:8000。它仍然没有用,但它是解决方案的第一部分。问题是 DEBUG 设置是 False。在这种情况下,Django 会考虑 ALLOWED_HOSTS 设置。

可能的解决方案:

  1. DEBUG 设置设为 True。无论如何,这是调试的好主意。 ALLOWED_HOSTS 在这种情况下不考虑设置。
  2. 保持 DEBUG 设置为 False 并添加到 ALLOWED_HOSTS '0.0.0.0''*' 或您的本地 ip(例如 '10.0.0.15')。这仅用于测试目的。确保在 运行 生产服务器时不允许任何主机。

当然,运行 0.0.0.0:8000 上的服务器。

当服务器 运行 是 OS X 时从其他机器访问服务器的一个很好的解决方案是转到设置 -> 在您的 Mac 上共享。在那里,在“计算机名称”下,您可以看到其他计算机可以用来在本地网络中访问此计算机的名称(例如 my-mac.local)。您可以将该名称添加到 ALLOWED_HOSTS,然后使用它访问服务器(例如 http://my-mac.local:8000/)。