记录折腾的一件事,其实是很简单的一个事情,就是因为之前没有搞明白原理才走了很多弯路,最终目的是可以在host上通过127.0.0.1访问VM中的一个Web Server(用MedieaWiki 搭了个人Wiki,方式记录工作和生活中的知识)。技术,就是一点点弄懂,懂了之后就觉得很简单的一件事,所以有时候狂试并不是一个明智的做法,仔细分析下也许就柳暗花明了。
Vmware 网络模式
看了很多文章介绍Vmware的上网方式,其实只有结合实践才能自己真正理解。
vmware 默认的网络模式如下图,分别是bridge,hostonly,nat, 如果你现在上不了网可以试着点击左下角恢复默认设置。编辑->虚拟网络编辑器可以查看到下图。
1 Bridge
Bridge 就是通过host的网作为bridge上网,VM就是局域网中的一台独立主机,需要手工位VM配置ip,netmask,gateway,并且要和host一致。这种模式下,虚拟机内部的网卡(如eth0),直接连接到了主机物理网卡所在的网络上。
2 NAT
让VM借助NAT(网络地址转换),通过host的网络进行访问,VM的TCP/IP配置信息由VMnet8虚拟网络的DHCP服务器提供,该模式比较简单,无需配置网络。
3 host-only
字如其名,host-only就是仅仅可以访问host,实用于将真实环境和虚拟环境隔离,虚拟系统和真实的网络是隔离的,该模式下,VM的TCP/IP配置,都是有VMnet1 的DHCP动态分配,默认情况下,虚拟机只能到主机访问。
host通过127.0.0.1访问vm web server
Step1: 设置NAT上网
虚拟机->设置
Step2: 设置port 转发
进入VM,ifconfig eth0 查看eth0的地址,在端口转发列表中,添加vm_ip:port,主机端口。
Step3: 设置静态地址
ubuntu下:
sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.237.128
gateway 192.168.237.2
dns-nameservers 8.8.8.8
这样,每次VM开机,都是一个静态的ip。
Step4: host上查看Server
host 输入:http://127.0.0.1:8080/, 就可以访问vm的web server了。
Troubleshooting
- NAT 设置上网后,VM的网络连接小图表显示的网络没有连接状态,这是正常的,只有是bridge这种方式,显示的是连接状态。
- 如果发现在虚拟机上不了网
ping 不通8.8.8.8,查看是否有默认网关
- 如果是bridge 方式,发现不能上网
查看:
查看电脑的Control Panel\Network and Internet\Network Connections, 是否enable 虚拟机网卡:
NAT 方式下上网是不需要虚拟网卡的。