Skip to main content
 首页 » 编程设计

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

2025年05月04日25emanlee

我在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 服务器只是一个运行在我本地计算机上的虚拟机

请您参考如下方法:

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

Note that the default IP address, 127.0.0.1, is not accessible from other machines on your network. To make your development server viewable to other machines on the network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).

您必须使用命令 python3.6 manage.py runserver 0.0.0.0:8000 运行

然后找出虚拟机的本地 IP 并导航到它

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