CentOS宿主机无法访问虚拟机中的web服务解决方案
宿主机无法访问虚拟机中的web服务
在Windows7宿主机中的VMware虚拟机中安装了CentOS6.5操作系统,并且基于Nginx搭建了Web服务器,网页刚刚搭建好的时候,通过宿主机的浏览器可以访问虚拟机中的网页。但是过了一会儿,就无法访问了,这个问题困扰了自己好几天,每次只好通过虚拟机快照返回到刚刚建立好web服务的那一步,这样就能访问了,但过了一会儿又不能访问了。
后来通过网上查找资料,终于明白了,是一位CentOS6.5的防火墙没有开通web服务的80端口,屏蔽了外部的访问。有两种方法可以使宿主机能够访问虚拟机的网页:(1)关闭虚拟机中的防火墙;(2)打开web服务的80端口。
1.关闭防火墙
使用
service iptables stop
命令可以临时关闭防火墙,这样就可以通过宿主机访问虚拟机中的网页了。
iptables 防火墙一般是开机启动的,使用上面的命令临时关闭了防火墙后,下次开机还是会启动防火墙软件,可以使用如下命令禁止开机启动防火墙:
chkconfig iptables off
但是,防火墙的目的就是为了防止外部的恶意访问的,所以最好还是保持防火墙的运行。
2.开启相应的端口
2.1命令行方式开启80端口
使用如下命令可以临时开启80端口:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
重启防火墙即可生效:
service iptables restart
如果要保持80端口在下次开机时仍然是开启状态,那么使用如下命令保存当前的设置:
service iptables save
2.2修改iptables的配置文件来开启端口
使用
vim /etc/sysconfig/iptables
命令修改 iptables 防火墙配置文件,添加一行内容如下:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
如图所示:
然后重启防火墙:
service iptables restart
这样就可以通过宿主机访问虚拟机的网络服务了。