实现主机访问虚拟机网页的方法总结
VMware Workstation提供了两种虚拟机上网方式,一种bridge,一种NAT,bridge可以获得公网地址,而NAT只能是内网地址了。
NAT相当于把主机当成了一个NAT转换器,我们可以添加端口映射,使得外网可以访问利用NAT上网的虚拟机。
下面举两个例子
使用的主机环境为
主机:win7 + vmware workstation 8 公网IP: 118.229.240.94
虚拟机:: Fedora 8 内网IP: 192.168.126.141
例1:在虚拟机内搭建http服务器,使用公网地址访问
1.配置httpd
虚拟机内部安装httpd,没安的话yum install httpd
启动 service httpd start(查看httpd服务状态 service httpd status 启动服务 service httpd start)
*********************************************************************************************************
关掉防火墙 (此处参考https://blog.csdn.net/qq_15030351/article/details/79733806)
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
1、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、设置 iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
最后重启系统使设置生效即可。
*********************************************************************************************************
在虚拟机内部用127.0.0.1测试,在主机用192.168.126.141测试,均能正常访问
2.添加端口映射规则
在主机浏览器内输入http://118.229.240.94 ,不可访问,因为主机没安http服务器。(这里要注意的是要在主机里输入主机的ip地址或者localhost+在主机使用的端口号才能访问到虚拟机的网页)
打开VMware Network Editor,找到这个虚拟机使用的网卡,我的是VMnet8
打开NAT setting
添加一个端口映射,我们将主机10000端口映射成虚拟机80端口
OK,在主机内访问 http://118.229.240.94:10000,可以成功。
但是在一台远程主机上不能成功,为什么呢?因为虚拟机关了防火墙,主机开了防火墙,手动打开主机的10000端口即可,方法参考如下链接:
http://windows.microsoft.com/zh-CN/windows7/Open-a-port-in-Windows-Firewall
例2: ssh端口映射
按上述方法将主机的10001端口映射成虚拟机的22端口(ssh使用22端口),就可以通过putty指定端口号10001访问虚拟机