问题的研究总是源于现实,这不,一直对虚拟机的几种网络懵懵懂懂,直到有个需求冒出来,这才想办法(有机会)一把撸掉。
业务背景描述:一台 Win10 的主机,跟了我很多年的 ThinkPad,只有 4 核 4G;由于工作、生活各种需要,里面用 VirtualBox 装了个 Ubuntu18 的虚拟机。平时写代码,跑个实验啥的就都在虚拟机上。突然需要在局域网多台终端上能够访问到虚拟机中的某个服务,自然少不了要一番配置,研究一天后终于把几个主流模式差不多搞清楚了,特记录如下。当然,尚有诸多细节留待日后继续研究。
先把官方文档的一张表放这里:
| Mode | VM→Host | VM←Host | VM1←→VM2 | VM→Net/LAN | VM←Net/LAN |
|---|---|---|---|---|---|
| Host-only | + | + | + | —(共享网卡后+) | — |
| Internal | — | — | + | — | — |
| Bridged | + | + | + | + | + |
| NAT | + | 端口转发 | - | + | 端口转发 |
| NATservice | + | 端口转发 | + | + | 端口转发 |