使用 Hyper-V 或者 KVM 的虚拟机的时候,我一般会通过 SSH 或者 RDP 进行访问,这样不同虚拟机的使用体验相对统一,不依赖具体 VM 管理软件的功能。只要配置好网络,就和正常使用服务器一样(不考虑有些公司内的虚机限制联网的情况)。因此,我们需要先来配置合适的网络满足我们的需求。
网络选择
在之前 KVM 网络里面介绍了两种网络的拓扑,Bridge 和 NAT,两者最大的区别在于是否多了一层子网,因为子网内的机器正常情况下无法被外面的其他机器访问到,因此选择的时候最主要考虑的就是这个点。
- Default NAT: Hyper-V 和 KVM 都会在安装完成后自动创建一个带 NAT 的子网。KVM 创建的是固定的 IP 段,还可以再自行修改到想要的 IP 段;而 Hyper-V 创建的 IP 段会在每次重启时发生变化,如果要使用固定的 IP 段,需要每次都重新配置一下,相当麻烦。
- Bridge: 在可以搭建 Bridge 网络的情况下,我倾向使用 Bridge 网络,这种情况下,VM 和宿主机有相同的连通性,可以配置成一个类似整个局域网的设备,如旁路由。但是,Bridge 网络有着麻烦的前置条件,就是需要破坏宿主机已有的网络,并且依赖外部的路由器,一般适合用在家里能物理访问到的机器上,不用担心网络出问题了连不上。普通家用路由器的情况下,一般路由器的 DHCP 都会根据 MAC 分配固定的 IP,当然自己也可以手动指定一个不冲突的 IP。
- Static NAT: 这个是专门针对 Hyper-V 的,因为 KVM 默认就是 Static NAT,不需要在单独配置。Hyper-V 可以通过新建一个虚拟交换机来分配固定的 IP 段,使得虚拟机可以配置固定的 IP。
因此,我一般在本地主机选择 Bridge,而使用服务器是会选 Static NAT。其实我之前配置 VM 的时候,也会选择配置主机名,经过局域网广播后,可以通过主机名直接访问而不需要关心 IP,但这个只有在局域网直连时有用,做一些特殊配置(如 proxy)的时候就可能会比较麻烦。