python - 无法从本地服务器外部连接到 Django
问题描述
我在 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 时,它失败了!!。但是我当然可以在本地远程登录。同时,我在 80 上运行 Apache 并且可以从内部/外部访问,但是当我禁用 Apache 并在端口 80 上运行 Django 时,我仍然可以在本地连接但不能在外部连接
Django 服务器只是在我的本地计算机上运行的虚拟机
解决方案
来自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
然后找出VM的本地IP并导航到它
http://192.168.0.XXX:8000 <--- Use local IP of VM
推荐阅读
- python - 如何从以下列表中对总和数字进行排序
- angular - 无法获取空的用户表单
- oracle - Oracle 包和在公共变量中使用 select 语句
- google-cloud-platform - 如何在 Cloud Composer 中重启网络服务器
- javascript - 从 JSON 序列化 BigDecimal、BigNumber、BigInt 等
- python - 有没有办法检测脚本本身中的代码块是否包含特定单词
- c - 尝试读取 json 文件时出现分段错误
- c# - 使用 .NET 的 Google 动态链接
- java - 无法打印数字金字塔
- php - PHP登录和注册表错误处理