#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, и просто сохранил одно (отмечено в моем вопросе выше). Сейчас он работает