对于资金不是很充裕的同学来说,通过虚拟机体验服务器的搭建过程是一个很好的开始。此外,虚拟机可以让我们方便的体验不同的操作系统而无需担心因误操作而带来的“后果”。
Windows上虚拟机软件主要有 VMware Workstation 和 VirtualBox,这里以 VMvare 为例介绍通过虚拟机上网的三种方式:
桥接模式(将虚拟机直接连接到外部网络)NAT模式(与虚拟机共享主机的IP地址)仅主机模式(在专用网络内连接虚拟机) 在创建虚拟机时,一般虚拟机会自动帮我们生成这三种网络,可以从虚拟网络编辑器中看到,如下图: 桥接模式
默认情况下,VMnet0用于桥接模式,当我们选择使用桥接模式上网,如下图:
一般这时就可以联网了,虚拟机已经帮我们做好了准备工作。如果不行的话,可以试试手动选择物理网卡,如下图: 在桥接模式下,虚拟机使用 VMware 为该虚拟机分配的虚拟网卡,宿主机使用自身的物理网卡(有线或无线)。虚拟机相当于在宿主机所在局域网内的一个单独的主机,他的行为和宿主机是同等地位的,没有依存关系。它们的关系如下图:
因此,虚拟机与主机之间可以相互 ping 通,局域网内的其他主机也可以和虚拟机进行通信。
通常情况下,客户机操作系统可以从 DHCP 服务器获取 IP 地址及其他网络详细信息,但也可能需要在客户机操作系统中手动设置 IP 地址和其他详细信息,此时需要为虚拟主机配置 IP 地址、子网掩码等(注意虚拟主机的 IP 地址要和主机 IP 地址在同一网段)。
有时会发现当选择桥接模式时,提示“不能更改网络为桥接:没有未桥接的主机网络适配器”,可能是因为未安装VMWare Bridge protocol,此时最简单的方法就是重置虚拟机的网络设置。
NAT模式
NAT(网络地址转换),是一种将私有(保留)地址转化为合法IP地址的转换技术。使用 NAT 模式网络时,虚拟机在外部网络中不必具有自己的 IP 地址。主机系统上会建立单独的专用网络。在默认配置中,虚拟机会在此专用网络中通过 DHCP 服务器获取地址。
NAT使用场景如下图所示:
NAT的结果就是从私有地址(10.0.12.0/24)转换到公网地址。
在虚拟机中第一次NAT会将虚拟机在专用网络中的 IP 地址转换为主机系统的 IP 地址,这样虚拟机发出的请求就如同主机发出的请求一样。
我们可以观察如下几个IP地址:
当我们的宿主机与虚拟机进行通信时,使用地址 192.168.79.1 向虚拟机发送数据。
虚拟机中的网关地址 192.168.79.2 是虚拟机生成的NAT服务器的网卡地址,这个地址只能在虚拟机中看到。
当虚拟机与外网进行通信时,虚拟机先把数据发送到网关 192.168.79.2/24,然后通过NAT服务器把地址转换为 192.168.43.224/24,然后再与外网进行通信。
如果在宿主机上禁用 VMnet8 虚拟网卡,不会影响虚拟机访问互联网,只是宿主机无法向虚拟机发送 ping 消息(虚拟机仍然可以向宿主机发送ping)。
注意:除了宿主机,局域网内的其他主机无法和虚拟机进行通信。
仅主机模式
在仅主机模式网络中,虚拟机和主机虚拟网络适配器均连接到专用以太网络。网络完全包含在主机系统内。
虚拟机和主机系统之间的网络连接由对主机操作系统可见的虚拟网络适配器提供。虚拟 DHCP 服务器可在仅主机模式网络中提供 IP 地址。在默认配置中,仅主机模式网络中的虚拟机无法连接到 Internet。
示意图如下:
此时虚拟机与宿主机之间可以相互ping通。(若出现虚拟机无法 ping 通宿主机,尝试关闭宿主机上的防火墙)
参考链接:
VMware Docs(https://docs.vmware.com/cn/VMware-Workstation-Pro)在实践中深入理解VMware虚拟机的上网模式:NAT模式(http://xpleaf.blog.51cto.com/9315560/1900870) 06374468