【问题标题】:How to access a server running on a local network如何访问在本地网络上运行的服务器
【发布时间】:2016-05-29 11:55:49
【问题描述】:

我在 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 的服务器,然后使用该地址从本地网络中的任何其他机器(包括运行服务器的机器)访问它。

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

【问题讨论】:

    标签: python django macos server localhost


    【解决方案1】:

    我尝试按照 Leonardo Andrade 的建议运行 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/)。

    【讨论】:

    • 10.0.0.* 是允许主机的选项吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 2013-10-20
      • 2012-01-03
      • 2020-08-09
      • 2023-03-17
      • 1970-01-01
      • 2018-09-24
      相关资源
      最近更新 更多