主机不能访问虚拟机中的web服务【解决方案】

情况是这样的:在虚拟机visualBox里安装了centos7系统,并且在该系统里运行了一个web服务,想通过宿主机或者外网来访问该服务,总是无法访问(虚拟机网卡已配置成桥接):


宿主机【win7】ip:

主机不能访问虚拟机中的web服务【解决方案】

虚拟机【CentOS7】ip:

主机不能访问虚拟机中的web服务【解决方案】

彼此能互相ping通,虚拟机中启动了一个简单的web服务:主机不能访问虚拟机中的web服务【解决方案】一个简单的只要访问就能得到一句简单的响应:

在虚拟机内部能够访问:

主机不能访问虚拟机中的web服务【解决方案】

在主机中通过浏览器就不能:

主机不能访问虚拟机中的web服务【解决方案】

在路由器里配置转发规则:

主机不能访问虚拟机中的web服务【解决方案】

从外网依然无法访问:

主机不能访问虚拟机中的web服务【解决方案】

百度了其它一些方法都不行,最后实在没辙,关了windows防火墙和linux防火墙,居然能够访问了,我服。


总结一下,原来是CentOS7防火墙没有开启端口3032,开启的方法为(老版本或其他linux版请自行百度):

[plain] view plain copy
  1. [[email protected] sysconfig]# firewall-cmd --permanent --add-port=3032/tcp  
  2. success  
  3. [[email protected] sysconfig]# firewall-cmd --reload  
  4. success  
附:直接关闭防火墙(不推荐)最好还是开启
[plain] view plain copy
  1. [[email protected] sysconfig]# systemctl stop firewalld.service  
  2. [[email protected] sysconfig]# systemctl start firewalld.service  


这样一来就都可以访问了。

主机不能访问虚拟机中的web服务【解决方案】

主机不能访问虚拟机中的web服务【解决方案】


附:如果使用的是网络地址转换NAT链接:

主机不能访问虚拟机中的web服务【解决方案】


需要在【端口转发】里设置一下虚拟机映射主机端口:

主机不能访问虚拟机中的web服务【解决方案】
其中192.168.56.1是虚拟机的ip地址:

主机不能访问虚拟机中的web服务【解决方案】

10.0.2.15是虚拟机里centos系统的ip地址:

主机不能访问虚拟机中的web服务【解决方案】

同样修改一下防火墙配置,即可访问:

主机不能访问虚拟机中的web服务【解决方案】