Django недоступен с другого компьютера
следуя инструкциям здесь, я создал свой первый веб-сервер django. Я еще не делал никакой серьезной настройки, за исключением.
Setup settings.py:
ALLOWED_HOSTS = ['192.168.1.111', 'localhost', '127.0.0.1']
Запуск django из cmd prompt
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 Firewall и включил 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:\Windows\system32>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:\Windows\system32>
192.168.1.111:8080 просто не работает ни с одного компьютера в сети. Пробовал с 192.168.1.77 (windows/chrome) и 192.168.1.75 (windows/firefox)
OK... Итак, это была проблема с брандмауэром. Очевидно, было еще одно исходящее правило с python.exe, которое было override=True и блокировало Public или Private UDP или TCP. Я даже не помню. Я просто удалил все TCP-правила, относящиеся к python, и оставил только одно (отмеченное в моем вопросе выше). Теперь все работает