主机无法访问虚拟机中运行的Django项目

在虚拟机中的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地址

 最后,在主机浏览器运行网址

 

posted @ 2019-07-22 16:40  Alex-GCX  阅读(1708)  评论(0编辑  收藏  举报