Сервер разработки Django на Raspberry Pi отказывается от подключения

759
ItsTimaiFool

У меня на Raspberry Pi работает простой веб-сервис, использующий сервер разработки Django (manage.py runserver). Я знаю, что это работает, потому что, когда я работаю curl localhost:8000на Pi, я получаю содержимое HTML моего сайта. Когда я бегу netstat -tnlпо пи, я получаю следующее:

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State  tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN  tcp6 0 0 :::22 :::* LISTEN  

Однако, когда я пытаюсь подключиться к сайту с другого компьютера в той же локальной сети, что и Pi (использующий http://<local IP of the pi>:8000), я получаю connection refused. (Я пробовал оба curlи веб-браузер.)

Я подключаюсь к Pi исключительно через SSH, и такие вещи, как curl http://www.google.comработа, поэтому я знаю, что Pi подключен к сети.

У меня самая последняя версия Raspbian на Pi. (Я только что переустановил его вчера, думая, что может решить эту проблему)

Как я могу подключиться к этому сайту? Нужно ли открывать порт на Пи или что-то?

Я не заинтересован в подключении к этому веб-серверу за пределами моей локальной сети, поэтому я не думаю, что мне придется иметь дело с переадресацией портов.

1
Попробуйте запустить следующую команду: `python manage.py runserver 0.0.0.0: 8000` 7 лет назад 0
Ничего себе, это немедленно исправило это. Почему это работает? О, и не могли бы вы дать такой ответ, чтобы я мог принять его? Спасибо! ItsTimaiFool 7 лет назад 0
Я добавил ответ. 7 лет назад 1

1 ответ на вопрос

2

По умолчанию серверы разработки Django связаны с 127.0.0.1, как вы можете видеть в поле Локальный адрес . Это означает, что он принимает соединения только от вашего Pi.

Когда вы используете 0.0.0.0 ( Википедия ), это похоже на подстановочный знак, это означает, что каждый в вашей локальной сети может получить к нему доступ.

Поэтому для того, чтобы получить доступ к серверу с другого компьютера необходимо выполнить следующую команду: python manage.py runserver 0.0.0.0:8000.