Andrew Moa Blog Site

Hyper-V虚拟交换机NAT设置静态IP

前面讲过用NAT+端口映射的方式访问虚拟机,但使用过程中发现一个问题:每次宿主机重启之后,默认的Default SwitchIP地址都会变更,造成虚拟机无法访问网关进而无法联网。

为了保证虚拟机联网,每次重启开机都要手动设置Default Switch对应适配器的IP地址,非常不便。下面是参考微软官方文档 给出的解决方案。

这里前面的步骤可以通过图形用户界面去实现,首先新建一个内部的虚拟交换机:

38530a4ee6eaabf98448a647c0446d0c.png

命名虚拟交换机,记住它,后面会用到。确定新建:

2d9b503b6087be2acffc63498abc5977.png

在Windows网络适配器中找到新建的虚拟机适配器,将IP地址改成虚拟机设置的网关地址,子网掩码也改成和虚拟机设置的一致:

e4140c00e7140a6ad234b58fa208caa9.png

下面用管理员权限打开PowerShell,通过以下命令行查看是否已有NAT网络:

Get-NetNat

因为一个机器上只能有一个NAT网络,因此要先移除现有的NAT网络:

Get-NetNat | Remove-NetNat

设置NAT网络:

# InLan为NAT网络名称,172.25.64.0为子网网关IP地址,/24为子网前缀长度
New-NetNat -Name InLan -InternalIPInterfaceAddressPrefix 172.25.64.0/24

关于子网网关,和上面设置的虚拟机适配器的IP地址即虚拟机的网关地址处在同一个网段即可,末尾设置为0;本例上面虚拟机的网关地址为172.25.64.1,那子网网关地址一般设置为172.25.64.0。子网前缀即子网掩码,关于子网前缀长度,通俗来讲,像2xx.2xx.2xx.0这种都是24位,2xx.2xx.2xx.2xx这种为32位。

设置完成后通过Get-NetNat查看是否有NAT网络信息:

Name                             : InLan
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 172.25.64.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

这样新的NAT网络就配置好了,在虚拟机设置中更换成新设置的虚拟交换机。

0dede2ea198412fb98f352185b8c299c.png

阅读时长1分钟
Andrew Moa

Hyper-V安装Ubuntu24.04

1. 需求

考虑在新电脑上安装Linux,不是双系统,因为还要满足日常办公。不喜欢折腾的可以用WSL,这里用Hyper-V实现,同时通过端口映射实现外网访问虚拟机。

2. 准备工作

2.1 下载Ubuntu

笔者是做CFD的,自然离不开Fluent,这玩意儿挑发行版的。从官网资料确认支持哪个发行版,支持哪个就装哪个,免得后面倒腾回来重装系统。

Ansys Computing Platform Support 2024R1

这里选择Ubuntu,前往官网下载最新的发行版。

2fd636d62e1453b3b54ad4074cde6c48.png

2.2 开启Hyper-V支持

在开始菜单搜索“启用或关闭Windows功能”,开启虚拟化支持。

973c3b93cf91c5138b89bbeaeb2bf103.png

把Hyper-V勾上,安装并重启就行了。

4e7e7f54c61f0f16af1595cb8c0b220e.png

阅读时长2分钟
Andrew Moa