Не удается подключиться к Django за пределами локального сервера - PullRequest
0 голосов
/ 24 мая 2018

Я создал базовый проект и приложение Django на Centos7, но не могу получить к нему внешний доступ.Проверьте конфигурацию ниже.

[root@pytoncentos7 myproject]# cat settings.py | grep ALLOWED
ALLOWED_HOSTS = ['*']

И я запускаю свой сервер, как показано ниже.

[root@pytoncentos7 myproject]#  python3.6 manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
May 24, 2018 - 15:03:04
Django version 2.0.5, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Кроме того, брандмауэр не работает

[root@pytoncentos7 myproject]# firewall-cmd --state
not running

Ниже приведенысписок моих портов.

[root@pytoncentos7 myproject]# netstat -lptun
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
PID/Program name
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      
1643/python3.6
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      
876/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      
982/master
tcp6       0      0 :::3306                 :::*                    LISTEN      
986/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      
876/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      
982/master
udp        0      0 127.0.0.1:323           0.0.0.0:*                           
636/chronyd
udp6       0      0 ::1:323                 :::*                                
636/chronyd

Кроме того, когда я пытаюсь подключиться снаружи к порту 8000, это не удается !!.Но, конечно, я могу telnet локально.И в то же время у меня есть Apache, работающий на 80 и достижимый из внутреннего / внешнего, но когда я отключаю Apache и запускаю Django на порту 80, я все еще могу подключиться локально, но не к внешнему

Сервер Django простовиртуальная машина, работающая на моем локальном компьютере

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

runserver без указания IP будет прослушивать только интерфейс обратной связи.

Вам необходимо python3.6 manage.py runserver 123.123.123.123 (при условии, что IP-адрес вашего сетевого интерфейса "123.123.123.123").

0 голосов
/ 24 мая 2018

С https://docs.djangoproject.com/en/2.0/ref/django-admin/#runserver

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

Вы должны работать скоманда python3.6 manage.py runserver 0.0.0.0:8000

Затем определите локальный IP-адрес виртуальной машины и перейдите к нему

http://192.168.0.XXX:8000   <--- Use local IP of VM
...