在虚拟机中的linux上运行了Django项目,虚拟机中可以访问,但外部主机无法访问(连接超时),但主机能ping同虚拟机,虚拟机也能ping通主机
需检查三个地方:(后面发现虚拟机的ip地址存在改变的情况,可能是由于主机网络是通过wifi连接的,所以地址经常变,虚拟机ip地址变更后,未改变下面的第二步的设置,主机依旧可以访问虚拟机的django网站,所以第二步并不是必须的步骤)
1.运行Django的命令,要写成: python3 manage.py runserver 0.0.0.0:8000 ,重点就是这个0.0.0.0,这样才能让外部访问到
2.VM软件的虚拟机网络配置
主机端口: 主机浏览器访问Django的端口,默认为8000(可自行修改)
虚拟机IP地址: 在虚拟机中输入ifconfig命令获取
虚拟机端口: xshell工具连接虚拟机所用的端口
3.防火墙(不只是主机的防火墙,虚拟的防火墙一样要关掉,如果前面两步都设置好了那基本就是防火墙的问题)
systemctl stop firewalld.service(关闭防火墙,重启后无效)
systemctl disable firewalld.service(关闭防火墙,永久有效)
4.在Django的setting.py文件中修改一下 ALLOWED_HOSTS,ip为虚拟机的ipv4地址
最后,在主机浏览器运行网址