VMware虚拟机使用技巧
双系统时常折腾容易坏电脑,因此一般是在虚拟机中使用Linux系统,常用的虚拟机为VMware,本文对VMware的相关知识以及使用过程中的一些问题做介绍。
三种网络模式辨析
VMware有三种网络模式,分别是桥接模式、NAT模式和主机模式
1. Bridged(桥接模式)
在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问网内任何一台机器。不过你需要空闲的IP地址,并且需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。
如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
2. NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
如果你想利用VMware安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。(也可以配置静态IP,后面会介绍)
3. Host-only(主机模式)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用Host-only模式。
在Host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。可以利用Windows XP里面自带的Internet连接共享(实际上是一个简单的路由NAT)来让虚拟机 通过主机真实的网卡进行外网的访问。虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(Host-only)虚拟网络的DHCP服务器来动态分配的。如果你想利用VMware创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择Host-only模式。
静态ip设置
虚拟机中安装的是Ubuntu18.04,因项目需要对其进行静态IP设置
1. 桥接模式
首先查看虚拟机网络配置信息,选择菜单栏编辑—>虚拟网络编辑器
,在三个网络中选择VMnet0
,桥接模式中选择网卡,我选择了有线网卡,可以根据需要选择无线网卡。
其次编辑虚拟机网络模式,点击编辑虚拟机设置
,选择网络适配器
,在网络连接
部分选择桥接模式
。
### 2. NAT模式
首先依然是查看虚拟机网络配置信息,选择菜单栏编辑—>虚拟网络编辑器
,在三个网络中选择VMnet8
,点击NAT设置
,查看并记录子网ip和网关。虚拟网络编辑器中的使用本地DHCP服务将IP地址分配给虚拟机
选项不要取消勾选,因为看到很多教程说要取消勾选,实际上取消掉之后就没网了。
注:这一步是查看,没有需要更改的内容。
然后编辑虚拟机网络模式。查看完配置信息后,在要设置静态ip的虚拟机界面下,点击编辑虚拟机设置
,进入后选择网络适配器
,在网络连接
部分从NAT模式
切换到自定义特点虚拟网络
,并选择VMnet8(NAT模式)
。点击确定后退出。
注:这一步需要在关闭虚拟机的状态下进行,挂起状态无法设置
3. 静态ip设置
Ubuntu18.04的静态ip设置是通用的,不因使用虚拟机不同。官方对静态ip设置的说明位于Network Configuration,步骤如下:
使用
ifconfig
可以查看当前ip和网关地址和网卡名,若有必要可以自己测试一下网络是否畅通。在
/etc/netplan
目录下创建配置文件02_config.yaml
,因为该目录下已有01开头的文件。1
$ sudo nano /etc/netplan/02_config.yaml
在配置文件中添加如下信息
1 2 3 4 5 6 7 8 9 10 11
network: version: 2 renderer: networkd ethernets: ens33: addresses: - 192.168.191.4/24 gateway4: 192.168.191.1 nameservers: search: [mydomain, otherdomain] addresses: [1.1.1.1, 8.8.8.8]
ens33
是网卡名,即之前使用ifconfig
命令查到的ip最前面的字段。addresses下的ip是自定义的静态ip,根据子网ip自己选择设置即可,掩码是24位的。gateway4
就是之前在NAT设置
中看到的网关地址。nameservers
下的addresses
是域名服务器地址,这里写的两个是常用的。保存退出,使用
netplan
启用配置1
$ sudo netplan apply
再次查询即可看到新的ip地址,为我们设置的静态ip,最后可以ping一下8.8.8.8和百度测一下网络是否可用。
桥接模式静态ip变动问题
联网试验期间突然有设备连不上了,经查发现使用netplan编辑启用的静态ip已变更,但这种情况只发生在虚拟机中。使用sudo netplan apply
命令重新启用,但一段时间后会再次变为其它ip。是虚拟机桥接模式的设置问题,还是Ubuntu18.04本身设置静态Ip的方式问题,暂时不清楚。
桥接模式存在“复制物理网络连接状态”的选项,用于笔记本电脑在有线和无线网络之间切换时的ip地址续订。未确认是否对ip地址变动有影响,鉴于连接无线网络不做变动,已取消勾选。
您可以为现有虚拟机配置桥接模式网络连接。
要为新虚拟机配置桥接模式网络连接,请在运行新建虚拟机向导时选择自定义硬件。
过程
选择虚拟机,然后选择虚拟机 > 设置。
在硬件选项卡中,选择网络适配器。
选择桥接模式: 直接连接物理网络。
如果在笔记本电脑或其他移动设备上使用虚拟机,请选择复制物理网络连接状态。
当您在有线或无线网络之间进行移动时,该设置会导致 IP 地址续订。
- 单击确定保存所做的更改。
第一种解决思路是虚拟机直接连接无线网络,但囿于笔记本的虚拟机无法检测到无线网卡,作罢,同时也不知道最后是否真的能起作用
目前打算直接从路由器后台针对MAC地址设置静态ip,虚拟机的MAC地址可以使用ifconfig
命令查看,虽然网上都称应查看HWaddr
后的地址,但并没有这个标识,只在ens33
的描述信息中存在如下描述,ether后的地址为MAC地址
|
|
也可以从虚拟机设置—>网络适配器—>高级
查看MAC地址,两者应是一致的。
然后在路由器后台选择IP与MAC绑定—>静态ARP绑定设置
,绑定设备MAC和要使用的静态IP即可。这里使用的路由器是水星MW306R。
ping出现DUP!
主机和树莓派都接入了路由器开启的WiFi网络,树莓派之间相互ping没有问题,但当树莓派ping虚拟机的系统,或者虚拟机的系统ping任何一个网址,返回的数据包都会出现DUP!
错误。网上的解决办法是禁用然后重新启用VMnet8,但并没有起作用。
经测试,有线网卡和无线网卡都接入了路由器的网络,虚拟机桥接到了无线网卡上,可能因此造成了环路(并不确定)。当我将虚拟机直接桥接到有线网卡上,再次发起ping命令,并断开了无线网卡的连接,DUP!
错误就消失了。没有明白原理,但确实解决了错误。
重启后界面变小
虚拟机重启后有时候窗口会变得只有中间一小块且没法放大,虽然可以通过重新安装vm-tools来修复,但经常重装也太麻烦了。实际上这种故障是由于vm-tools的服务没有正常启动造成的,可以通过执行下面的命令解决。
|
|
github上open-vm-tools项目的#253和#303两个issue都是讨论这个问题的。