django недоступен с другого компьютера

#python-3.x #django

Вопрос:

следуя инструкциям здесь, я создал свой первый веб-сервер django. Еще не сделал никаких серьезных настроек, кроме.

Настройка settings.py:

 ALLOWED_HOSTS = ['192.168.1.111', 'localhost', '127.0.0.1']
 

Запуск django из командной строки

 python manage.py runserver 0.0.0.0:8080
 

Все три URL-ссылки работают на этом локальном компьютере, на котором установлен django:
http://127.0.0.1:8080/, http://localhost:8080/, http://192.168.1.111:8080/

Затем я перешел к настройкам брандмауэра Windows, чтобы включить 8080 в качестве входящего правила: введите описание изображения здесь

Моя проблема в том, что http://192.168.1.111:8080/ создает исключение при доступе с другого компьютера (в той же сети, IP-адрес 192.168.1.77). Ошибка: «Сайт недоступен, слишком долго не отвечал».

Я не могу понять, что я делаю не так. Я уверен, что это проблема с брандмауэром. Отключил брандмауэр Windows на 192.168.1.111, и он работал с 192.168.1.77. Все еще остается вопрос — Как заставить его работать с брандмауэром на 192.168.1.111. Моя версия python-3.9, а версия django-3.2. К вашему сведению, я перешел на 8080 просто для удовольствия. У меня была такая же проблема с 8000.

Две вещи, на которые стоит обратить внимание:

(1) 192.168.1.111:8080 выдает предупреждение «Небезопасное соединение» на основной машине (на которой установлен django)

введите описание изображения здесь

(2) netstat тоже кажется нормальным:

 C:Windowssystem32>netstat -ab

Active Connections

  .
  .
 [postgres.exe]
  TCP    0.0.0.0:7680           DEVSERVER:0            LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:8080           DEVSERVER:0            LISTENING
 [python3.9.exe]
  TCP    0.0.0.0:49664          DEVSERVER:0            LISTENING
  .
  .
 Can not obtain ownership information
  TCP    192.168.1.111:8080     DEVSERVER:50515        ESTABLISHED
 [python3.9.exe]
  TCP    192.168.1.111:49800    52.226.139.121:https   ESTABLISHED
 [SearchApp.exe]
  TCP    192.168.1.111:50502    52.182.141.63:https    TIME_WAIT
  TCP    192.168.1.111:50515    DEVSERVER:8080         ESTABLISHED
  .
  .
C:Windowssystem32>
 

192.168.1.111:8080, похоже, просто не работает ни с одного компьютера в сети. Пробовал с 192.168.1.77 (windows/chrome) и 192.168.1.75(windows/firefox)

Комментарии:

1. О да, и я изучил другие предложения по stackoverflow. Почти все говорят о «РАЗРЕШЕННЫХ ХОСТАХ» и «python manage.py runserver 0.0.0.0:8080». Я не смог найти слишком много помощи по вопросам брандмауэра (в чем, по-моему, и заключается моя проблема).

2. Можете ли вы пропинговать 111 из 77? Попробуйте добавить 192.168.1.77 в ALLOWED_HOSTS

3. @bdbd — Да, они оба могут пинговать друг друга. Добавление 192.168.1.77 в ALLOWED_HOSTS не имеет смысла, но я только что попробовал, и это не сработало

4. О, и я пробовал как http://…, так и https://…

Ответ №1:

Хорошо … значит, это была проблема с брандмауэром. По-видимому, существовало еще одно исходящее правило с python.exe это было переопределение=True и блокирование общедоступного или частного UDP или TCP. Я даже не помню. Я просто удалил все правила TCP, относящиеся к python, и просто сохранил одно (отмечено в моем вопросе выше). Сейчас он работает