开始之前
首先如果是仅仅想要主机和虚拟机进行数据互通,其实不需要固定 IP,直接通过计算机名就可以互相访问。
Hyper-V 网络模式
外部虚拟网络: 类似于 VMware 的桥接网络模式, 在希望允许虚拟机与外部服务器和管理操作系统(有时称为父分区)进行通信时,可以使用此类型的虚拟网络。此类型的虚拟网络还允许位于同一物理服务器上的虚拟机互相通信。
内部虚拟网络: 类似于 VMware 的 NAT 网络模式, 在希望允许同一物理服务器上的虚拟机与虚拟机和管理操作系统之间进行通信时,可以使用此类型的虚拟网络。内部虚拟网络是一种未绑定到物理网络适配器的虚拟网络。它通常用来构建从管理操作系统连接到虚拟机所需的测试环境。
专用虚拟网络: 在希望只允许同一物理服务器上的虚拟机之间进行通信时,可以使用此类型的虚拟网络。专用虚拟网络是一种无需在管理操作系统中装有虚拟网络适配器的虚拟网络。在希望将虚拟机从管理操作系统以及外部网络中的网络通信中分离出来时,通常会使用专用虚拟网络。
由于 Hyper-V 自带的 Default Switch 在每次电脑重启的时候会自动分配一个未使用的网段, 无法达到固定 IP 的效果, Hyper-V 默认的 Default Switch 同时支持了 NAT 网络以及 DHCP
正常来说想要固定 IP 有以下方式:
- 创建一个自定义的网段, 固定网段的地址范围, 然后虚拟机使用固定 IP
- 增加一个新的仅内网网卡, 虚拟机正常访问网络使用 Default Switch 不变, 物理机访问虚拟机使用仅内网网卡
- 使用外部虚拟网络, 和主机处于同一个内网
方案一: 创建自定义 NAT 网段
参考:https://learn.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/setup-nat-network
添加虚拟交换机
使用powershell添加手动添加
可以到 Hyper V 管理器 虚拟交换机管理器 新建虚拟交换机
类型选择 内部
设置 ip 地址
使用powershell添加手动添加
进入 windows 设置,给网卡 vEthernet (NAT) 设置固定 ip 和子网掩码
创建 NAT 网络
|----------------------------------------------------------------------------|
| New-NetNat -Name NAT -InternalIPInterfaceAddressPrefix 10.0.0.0/24 |
删除 NAT 网络
如果不需要 NAT 网络了,可以使用下面的命令来删除(NAT 网络只能存在一个)。
|----------------------------------------------------------------------------------------------------|
| Get-NetNat # NAT网络保持一个就行了,可以删除后重新创建 Remove-NetNat NAT # 删除nat网络 |