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

宿主机【win7】ip:

虚拟机【CentOS7】ip:

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

在虚拟机内部能够访问:

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

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

从外网依然无法访问:

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

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

[plain] 
view plain
 copy

 

  1. [root@localhost sysconfig]# firewall-cmd --permanent --add-port=3032/tcp  
  2. success  
  3. [root@localhost sysconfig]# firewall-cmd --reload  
  4. success  

附:直接关闭防火墙(不推荐)最好还是开启

[plain] 
view plain
 copy

 

  1. [root@localhost sysconfig]# systemctl stop firewalld.service  
  2. [root@localhost sysconfig]# systemctl start firewalld.service  

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

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

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

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

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

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