Подтвердить что ты не робот

Как сделать Django devserver публичным? Это вообще возможно?

В настоящее время я пробую Django-фреймворк, и я бы поделился/подарил/показал некоторые вещи, которые я сделал своим коллегам/друзьям. Я работаю в Ubuntu под Win7 через VMware. Так что мое желание/желание - отправить мой текущий pub-IP с портом (например, http://123.123.123.123:8181/django-app/) моим друзьям, чтобы они могли проверить его.

Проблема в том, что я использую сервер django Dev (python/path-to-django-app/manage.py runserver $ IP: $ PORT).

Как мне сделать общедоступным devserver?

РЕДАКТИРОВАТЬ:

О, я кое-что забыл упомянуть. Как мне грустно, я использую VMware с Ubuntu. У меня есть шеллскрипт, который возвращает мне мой текущий int-IP 192.168.xx.xx и сохраняет его в переменной среды ($ CUR_IP). Поэтому каждый раз, когда я хочу запустить django devserver, я просто выполняю

python /path-to-django-site/manage.py runserver $CUR_IP:8080

Таким образом, я становлюсь http-адресом (например, http://192.168.40.145:8080/app-name/), который я МОГУ ИСПОЛЬЗОВАТЬ ВНЕ МОЕЙ Виртуальной машины. Я мог бы проверить это на моем хосте (win7). Это на самом деле причина, почему я задал вопрос. Я думал, что есть способ использовать ext-IP и сделать runserver пригодным для использования снаружи

4b9b3361

Ответ 1

192.168.*.* является локальным адресом LAN - после того, как вы сделали правильный VMWare (или другой диспетчер VM) и брандмауэры, чтобы сделать его доступным из локальной сети, он по-прежнему не будет доступен извне локальной сети, т.е. из Интернета в целом (хорошо, потому что такие серверы разработки не предназначены для обеспечения безопасности и масштабируемости).

Чтобы сделать порт компьютера с локальным IP-доступом, видимым в Интернете в целом, вам нужен маршрутизатор с возможностью "виртуальных серверов" (многие маршрутизаторы, даже дешевые, предлагают его, но это невозможно особенно для его включения, поскольку каждый бренд имеет свой собственный индивидуальный подход). Я бы также рекомендовал dyndns или другую аналогичную услугу, чтобы связать стабильное DNS-имя с вашим постоянно меняющимся общедоступным IP-адресом (если вы не разрываете для статического IP-адреса от вашего провайдера соединений, конечно, но последний вариант становится все дороже).

superuser.com или serverfault.com могут предоставлять более качественные ответы и подробности (как только вы дадите каждую маленькую деталь своей конфигурации в вопросе), поскольку вопрос не имеет ничего общего с разработкой программного обеспечения и всем, что связано с администрированием сервера и конфигурации.

Ответ 2

python manage.py runserver 0.0.0.0:8181

Это будет запустить сервер разработки, который должен прослушивать все IP-адреса на порту 8181.

Обратите внимание, что с 17 июня 2011 г. Django development сервер по умолчанию по умолчанию (билет № 1609).

Из документов:

Обратите внимание, что IP-адрес по умолчанию, 127.0.0.1, недоступен из других компьютеров в вашей сети. к сделать ваш сервер разработки видимым к другим машинам в сети, используйте его собственный IP-адрес (например, 192.168.2.1) или 0.0.0.0.

Ответ 3

Предполагая, что у вас установлен рубин, вам просто нужно получить localtunnel:

gem install localtunnel

затем запустите свой сервер разработки python с помощью:

python manage.py runserver 0.0.0.0:8000

в другой оболочке, запустите localtunnel:

localtunnel -k ~/.ssh/id_rsa.pub 8000 

Это приведет к выводу URL-адреса для доступа к вашему локальному серверу.

Port 8000 is now publicly accessible from http://xxxx.localtunnel.com

Что это.

Ответ 4

Уже ответили, но добавили npm alternate того же localtunnel

sudo npm install -g localtunnel

lt --port 8000 --subdomain yash

Ответ 5

Если вы используете Virtualbox, вам необходимо изменить сетевые настройки в VB с "NAT" на "Bridged Adapter". Затем перезапустите Linux. Теперь, если вы запустите sudo ifconfig, вы сможете увидеть свой IP-адрес, например 192.168.*.*. Последним шагом является runerver

python manage.py runserver 192.168.*.*:8000

Ура!

Ответ 6

Мне пришлось добавить эту строку в settings.py, чтобы она работала (в противном случае она отображается с ошибкой при доступе с другого компьютера)

ALLOWED_HOSTS = ['*']

затем запустил сервер с помощью:

python manage.py runserver 0.0.0.0:9595

Ответ 7

Вам необходимо настроить мостовую сеть в VMWare, а также предоставить доступ к целевому порту в брандмауэре Ubuntu.