diff --git a/docs/Ch01/supplement.md b/docs/Ch01/supplement.md index 206a357b..b19e3dd3 100644 --- a/docs/Ch01/supplement.md +++ b/docs/Ch01/supplement.md @@ -189,6 +189,62 @@ $ sudo resize2fs /dev/sda2 如果有过分区经验,也可以安装图形化的 GParted 工具进行操作。 +### 虚拟机网卡的“模式” {#vm-nic-modes} + +在虚拟机中使用网络设备时,会发现虚拟机一般有三种网卡模式,分别叫做 `Bridged`(桥接)、`NAT`(网络地址转换)、`Host only`(仅主机)。虚拟机中的网络设备,是虚拟网卡(Virtual NIC),其背后需要与某个网络连接,才能实现通信功能。 + +在安装虚拟机前,设备上的网络通常是这样的: + +```mermaid +flowchart TD + HSP[主机上的程序] --> HS + HS[主机] -->|物理网卡 10.1.2.3| IN[外部网络] +``` + +#### 桥接模式 {#bridge-mode} + +在这种模式下,虚拟机程序(例如 VMWare)会在主机上创建一个虚拟交换机。虚拟交换机上,接入了原来的物理网卡(例如有线网卡或者 Wi-Fi 适配器等)、虚拟机中安装的虚拟网卡、主机上的虚拟网卡。在这种配置下,虚拟机和主机都暴露在外部网络下,分别使用**不同的 IP**。 + +```mermaid +flowchart TD + VMP1[虚拟机上的程序] --> VM1 + VMP2[虚拟机上的程序] --> VM2 + HSP[主机上的程序] --> HS + VM1[虚拟机] -->|虚拟网卡 10.1.2.4| SW[虚拟交换机] + VM2[虚拟机] -->|虚拟网卡 10.1.2.5| SW[虚拟交换机] + HS[主机] -->|虚拟网卡 10.1.2.3| SW[虚拟交换机] + SW -->|物理网卡 10.1.2.3/4/5| IN[外部网络] +``` + +#### 网络地址转换模式 {#nat-mode} + +与桥接模式不同,网络地址转换下,虚拟机和主机**共用一个 IP**,虚拟机之间用虚拟交换机连接。从外部网络看来,虚拟机上的程序和主机上的程序发出的请求是一样的。 + +```mermaid +flowchart TD + VM1[虚拟机] -->|虚拟网卡 192.168.100.100| SW[虚拟交换机 192.168.1.x] + VM2[虚拟机] -->|虚拟网卡 192.168.100.101| SW + SW -->|192.168.1.x| NAT[NAT 网络地址转换] + NAT -->|10.1.2.3| HS + HSP[主机上的程序] -->|10.1.2.3| HS + HSP -->|虚拟网卡 192.168.100.1| SW + HS[主机] -->|物理网卡 10.1.2.3| IN[外部网络 10.x.x.x] +``` + +#### 仅主机模式 {#hostonly-mode} + +仅主机模式类似 NAT,但是虚拟机不能与外部网络通信。 + +```mermaid +flowchart TD + VM1[虚拟机] -->|虚拟网卡 192.168.100.100| SW[虚拟交换机 192.168.1.x] + VM2[虚拟机] -->|虚拟网卡 192.168.100.101| SW + SW + HSP[主机上的程序] -->|10.1.2.3| HS + HSP -->|虚拟网卡 192.168.100.1| SW + HS[主机] -->|物理网卡 10.1.2.3| IN[外部网络 10.x.x.x] +``` + ### 已知问题 {#vm-known-issues} #### 在 macOS VirtualBox 下闪屏 {#virtualbox-flicker} @@ -542,62 +598,6 @@ $ sudo apt-get install ubuntu-desktop 使用 Ventoy 可以简单方便地从 U 盘或者其他移动介质安装各类操作系统(且支持在一个介质中存放多个系统镜像),当然也包括 GNU/Linux。有关如何使用 Ventoy,请参考其网站[^2]。 -## 虚拟机网卡的“模式” {#vm-nic-modes} - -在虚拟机中使用网络设备时,会发现虚拟机一般有三种网卡模式,分别叫做 `Bridged`(桥接)、`NAT`(网络地址转换)、`Host only`(仅主机)。虚拟机中的网络设备,是虚拟网卡(Virtual NIC),其背后需要与某个网络连接,才能实现通信功能。 - -在安装虚拟机前,设备上的网络通常是这样的: - -```mermaid -flowchart TD - HSP[主机上的程序] --> HS - HS[主机] -->|虚拟网卡 10.1.2.3| IN[外部网络] -``` - -### 桥接模式 {#bridge-mode} - -在这种模式下,虚拟机程序(例如 VMWare)会在主机上创建一个虚拟交换机。虚拟交换机上,接入了原来的物理网卡(例如有线网卡或者 Wi-Fi 适配器等)、虚拟机中安装的虚拟网卡、主机上的虚拟网卡。在这种配置下,虚拟机和主机都暴露在外部网络下,分别使用**不同的 IP**。 - -```mermaid -flowchart TD - VMP1[虚拟机上的程序] --> VM1 - VMP2[虚拟机上的程序] --> VM2 - HSP[主机上的程序] --> HS - VM1[虚拟机] -->|虚拟网卡 10.1.2.4| SW[虚拟交换机] - VM2[虚拟机] -->|虚拟网卡 10.1.2.5| SW[虚拟交换机] - HS[主机] -->|虚拟网卡 10.1.2.3| SW[虚拟交换机] - SW -->|物理网卡| IN[外部网络] -``` - -### 网络地址转换模式 {#nat-mode} - -与桥接模式不同,网络地址转换下,虚拟机和主机**共用一个 IP**,虚拟机之间用虚拟交换机连接。从外部网络看来,虚拟机上的程序和主机上的程序发出的请求是一样的。 - -```mermaid -flowchart TD - VM1[虚拟机] -->|虚拟网卡 192.168.100.100| SW[虚拟交换机 192.168.1.x] - VM2[虚拟机] -->|虚拟网卡 192.168.100.101| SW - SW --> NAT[NAT 网络地址转换] - NAT -->|192.168.1.101| HS - HSP[主机上的程序] -->|10.1.2.3| HS - HSP -->|虚拟网卡 192.168.100.1| SW - HS[主机] -->|物理网卡 10.1.2.3| IN[外部网络 10.x.x.x] -``` - -### 仅主机模式 {#hostonly-mode} - -仅主机模式类似 NAT,但是虚拟机不能与外部网络通信。 - -```mermaid -flowchart TD - VM1[虚拟机] -->|虚拟网卡 192.168.100.100| SW[虚拟交换机 192.168.1.x] - VM2[虚拟机] -->|虚拟网卡 192.168.100.101| SW - SW - HSP[主机上的程序] -->|10.1.2.3| HS - HSP -->|虚拟网卡 192.168.100.1| SW - HS[主机] -->|物理网卡 10.1.2.3| IN[外部网络 10.x.x.x] -``` - ## 引用来源 {#references .no-underline} [^1]: [Apple silicon - Wikipedia](https://en.wikipedia.org/wiki/Apple_silicon)