Доступ к локальному хосту извне?
Это, наверное, очень простой вопрос. Я SSH к моему виртуальному серверу Ubuntu и запускаю веб-сервер django, работающий на localhost:
Downloading/unpacking django
Downloading Django-1.9.5-py2.py3-none-any.whl (6.6MB): 6.6MB downloaded
Installing collected packages: django
Successfully installed django
Cleaning up...
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
April 13, 2016 - 14:16:19
Django version 1.9.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Сервер Ubuntu имеет статический IP-адрес [x.xxx.xxx.xxx], поэтому с другой машины в другой сети я пытаюсь получить доступ к вышеуказанному веб-сайту в браузере с использованием этого статического IP-адреса:
x.xxx.xxx.xxx:8000
Но я получаю:
This site can’t be reached
x.xxx.xxx.xxx refused to connect.
ERR_CONNECTION_REFUSED
Итак, я предполагаю, что я не могу получить доступ к веб-сайту, как этот, и он доступен только на хосте, который сам по себе, даже если у хоста есть внешний / статический IP-адрес?
Редактировать:
Ответ также находится по адресу: https://docs.djangoproject.com/en/1.9/intro/tutorial01/
python manage.py runserver 0.0.0.0:8000
1 ответ
Вы должны запустить свой веб-сервер на 0.0.0.0:8000
, тогда внешне вы будете использовать либо ip, либо имя хоста для доступа. С помощью 0.0.0.0
означает, что сервис django будет прослушивать все настроенные сетевые интерфейсы.
Проверьте Википедию на детали о 0.0.0.0.
Другой ответ на сервере может быть полезным.