1. 为什么需要学习网络适配器?
理解VirtualBox中的网络适配器和其工作方式是非常重要的,原因如下:
- 安全性:不同的网络连接方式会对虚拟机的安全性产生影响。例如,如果我们将虚拟机设置为桥接模式,虚拟机将会在我们的网络中设备中显示,这样可能会增加安全风险。如果我们不希望虚拟机暴露在我们的网络中,我们可能需要选择NAT或主机模式。
- 网络功能:不同的网络适配器类型将决定虚拟机可以访问哪些网络资源。如果我们需要在虚拟机上运行某些特定的网络服务或应用,我们需要确保我们选择了正确的网络适配器类型以便让这些服务或应用可以正常工作。
- 虚拟机间通信:如果我们在同一台主机上运行多个虚拟机,不同的网络适配器类型可以决定这些虚拟机是否可以彼此通信以及如何通信。
- 故障排除:如果我们在虚拟机上遇到网络问题,理解不同的网络适配器和其工作方式可以帮助你更快地找出问题的原因并解决问题。
本文中,我们以VirtualBox为例学习网络适配器。对于其他虚拟机软件的网络适配器,原理也是相通的。
为便于描述,下文中会使用一些名词,这里提前声明一下它们的含义:
- 虚拟机:虚拟软件虚拟出的机器,实际不存在。
- 宿主机:运行虚拟机软件的机器,一般是物理机,也可能是虚拟机(嵌套虚拟化)。
- 宿主机局域网:宿主机所在的二层网络。
- 其他主机:和宿主机在同一个二层网络的主机。
参考文档:
2. VirtualBox中的网络适配器
Oracle VM VirtualBox提供了多种网络适配器类型供虚拟机使用:
- 不连接(None):网络适配器存在但未连接到宿主机或其他网络。这种情况下,虚拟机不能访问任何网络。
- 网络地址转换(NAT):使用NAT模式可以使虚拟机分享宿主机的IP地址,虚拟机可以访问宿主机局域网,但宿主机局域网不能直接访问虚拟机。这就像你的电脑连在一个路由器后面,你可以访问互联网,但互联网上的其他人不能直接访问你的电脑。
- 桥接适配器(Bridged networking):桥接模式使虚拟机能够与宿主机在同一网络。在虚拟机内部看来,网络适配器是连接到其自己的物理网络,独立于宿主机的网络连接。这就像虚拟机和宿主机都连在同一个交换机上。
- 内部网络(Internal networking):虚拟机可以彼此进行通信,但不能与外界通信。这就像虚拟机都连在一个交换机上,但这个交换机没连在任何其他网络上。
- 主机模式(Host-only networking):与内部网络类似,但网络也连接到主机,允许在主机上运行的所有虚拟机与主机本身之间进行通信。
3. 网络适配器详解
3.1. 不连接(None)
不连接(None),网络适配器存在但未连接到宿主机或其他网络。这种情况下,虚拟机不能访问任何网络。
3.2. 网络地址转换(NAT)
网络地址转换(NAT)是最简单的实现虚拟机上网的方式。
虚虚拟机可以访问宿主机能访问到的所有网络,但是对于宿主机和其他主机,虚拟机又是不可见的,甚至宿主机也访问不到虚拟机。
虚拟机网络关系说明:
- 虚拟机与宿主机的关系:只能单向访问,虚拟机可以访问到宿主机,宿主机无法访问到虚拟机。
- 虚拟机与其他主机的关系:只能单向访问,虚拟机可以访问到其他主机,其他主机不能访问到虚拟机。
- 虚拟机与虚拟机的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
3.3. 桥接适配器(Bridged networking)
桥接适配器(Bridged networking)通过宿主机网卡,架设了一条桥,直接连入到宿主机局域网中。
这种连接方式使得虚拟机能被分配到宿主机局域网中独立的IP,所有网络功能完全和在网络中的真实主机一样。
网桥模式下的虚拟机,它的网络表现和真实主机相同。
虚拟机网络关系说明:
- 虚拟机与宿主机的关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,宿主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
- 虚拟机于其他主机的关系:可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
- 虚拟机与虚拟机的关系:如果两台虚拟机都是桥接,那么可以相互访问;如果一台是桥接,那么把桥接的那台虚拟机视为网络中的其他主机。
3.4. 内部网络(Internal networking)
内部网络(Internal networking)实现虚拟机和虚拟机之间的内部网络通信,与宿主机不通,与宿主机局域网不通。
虚拟机网络关系说明:
- 虚拟机与宿主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。
- 虚拟机与其他主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。
- 虚拟机与虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。
3.5. 主机模式(Host-only networking)
主机模式(Host-only networking)与内部网络类似,但网络也连接到主机,允许在主机上运行的所有虚拟机与主机本身之间进行通信。
宿主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都连接到该网卡上,宿主机本身也连接到该网卡上。我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
虚拟机网络关系说明:
- 虚拟机与主机的关系:默认可以相互访问,host-only网卡默认IP段为 192.168.56.0/24 ,创建的虚拟机默认分配到这个网段。
- 虚拟机与其他主机的关系:默认不能相互访问,通过设置,可以实现相互访问。
- 虚拟机与虚拟机的关系:默认可以相互访问,都是同处于一个网段。
4. 虚拟机网络设计
比较简单的设计,是添加两张网卡。一张选择仅主机(Host-Only)适配器,用于宿主机和虚拟机之间的通讯,使宿主机可以访问虚拟机的服务;一张选择网络地址转换(NAT),用于分享宿主机网络给虚拟机,使虚拟机可以访问外网。
5. VirtualBox虚拟机网络配置方法
选中虚拟机,设置,网络,连接方式选择桥接网卡或者其他网络适配器。
如果想要给虚拟机设置静态IP,可以参考文档:《好好学Linux:Linux系统配置静态IP》
PS:虚拟机启动后,利用 右ctrl
键来切换宿主机和虚拟机的鼠标,利用 右ctrl+F
来切换虚拟机全屏状态。
6. 后记
以后不玩图形界面的Linux了,而是专注于通过命令行操作Linux,加油!