Python 无法从本地服务器外部连接到Django

Python 无法从本地服务器外部连接到Django,python,django,centos7,telnet,firewall,Python,Django,Centos7,Telnet,Firewall,我在Centos7上构建了一个基本的Django项目和应用程序,但我无法从外部访问它。检查下面的配置 [root@pytoncentos7 myproject]# cat settings.py | grep ALLOWED ALLOWED_HOSTS = ['*'] 我运行我的服务器如下 [root@pytoncentos7 myproject]# python3.6 manage.py runserver Performing system checks... System check

我在Centos7上构建了一个基本的Django项目和应用程序,但我无法从外部访问它。检查下面的配置

[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时,它失败了!!。当然,我可以在本地远程上网。同时,我让Apache在80上运行,可以从内部/外部访问,但是当我禁用Apache并在端口80上运行Django时,我仍然可以在本地连接,但不能从外部连接

Django服务器只是在我的本地计算机上运行的虚拟机

请注意,默认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

http://192.168.0.XXX:8000   
runserver
如果不指定IP,将只侦听环回接口


您需要
python3.6 manage.py runserver 123.123.123
(假设网络接口的IP为“123.123.123.123”)。

您需要打开路由器上的端口