Как правильно настроить ALLOWED_HOST, чтобы разрешить другим машинам в сети доступ к Интернету

Django сервер на машине TestPC-A , по адресу 192.25.56.120

Я хочу, чтобы он был доступен с компьютера в той же сети 192.25.56.xxx.

что я настроил

1. settings.py

ALLOWED_HOSTS = ["127.0.0.1", "localhost", "TestPC-A" , "0.0.0.0", "192.25.56.120"]

и вот это, в необходимости которого я не уверен:

CSRF_TRUSTED_ORIGINS = [
    "http://127.0.0.1",
    "https://127.0.0.1",
    "http://localhost",
    "https://localhost",
    "https://TestPC-A",
    "http://TestPC-A",
]

2. runserver.bat

@echo off
REM Activate virtual environment in the current terminal session and run server
cmd /k ".venv\Scripts\activate && python manage.py runserver_plus --cert-file cert.pem --key-file key.pem 0.0.0.0:8000"

Я пытался добавить следующее в файл hosts Windows C:\Windows\System32\drivers\etc\hosts

192.25.56.120    TestPC-A

Я перезапускаю сервер, и веб-страница не загружается в веб-браузере другого компьютера https://TestPC-A:8000/

Что еще нужно установить?

Для потомков. Чтобы сделать ваш сервер разработки видимым для других машин в сети.

Предположим, у вас есть две машины machine A и machine B. Подключите обе машины к общей сети (это может быть даже wifi вашего мобильного телефона).

Если machine A будет вашим сервером, т.е. machine A будет машиной, где все это время находился ваш исходный код, а machine A будет местом, где вы выполняли команду:

python manage.py runserver

Check the IP address machine A was assigned on this network. [stackoverflow] Add this IP address to Django settings ALLOWED_HOSTS [django-docs] list so that Django will allow the machine to host it.

Если IP-адрес, например, 172.200.42.1, добавьте это к ALLOWED_HOSTS и теперь выполните команду:

python manage.py runserver 0.0.0.0:7000 # <—- runserver on port 7000 on this host on this network

Поскольку machine B подключен к той же сети, что и machine A, используйте любой http-клиент (даже ваш интернет-браузер может служить) на machine B для подключения к machine A, т.е. вашему серверу, используя адрес сокета 172.200.42.1:7000 [1].


[1] Мы будем использовать этот адрес сокета, потому что приложение работает на machine A, который находится на IP-адресе 172.200.42.1 в сети, а приложение работает на порту 7000.

Что я сделал:

  1. ALLOWED_HOSTS = ["*"]
  2. runserver
  3. Важно: добавьте правило входящих соединений на брандмауэре, разрешите соединения, относящиеся к домену, частным лицам, публичным лицам, TCP ThePort
  4. .
Вернуться на верх