背景
之前有在使用Hyper-V的过程中遇到过问题,那就是关于虚拟机的联网。
Server系统下没有默认的Default Switch,桥接也在当时的场景下不起作用,当时可头疼了好久。
那么,我们必须知道 ”外部“ 和 Default Switch 都是什么东西。
两种结构
桥接
这是 Hyper-V 中最简单的一种连接外网的方法(在 Windows Server 且无 Default Switch的情况下),但是有时可能因物理路由器的配置而无法连接。Windows Server开启Hyper-V时显示的创建虚拟交换机使用的就是这个模式。(在物理机路由没有DHCP的情况下,选择用于远程连接的网卡或许会导致断网)
简单来讲, 桥接网络的意思就是在两个网络之间搭上一座桥。他们会共用网段和网段。因此,物理机和虚拟机在同一个网络下,在路由器里面可以看到虚拟机上线。
这种方法可能会因为路由器而无法连接外网。那么我们就需要知道另一种方法了。
NAT
这种虚拟交换机不能直接在Hyper-V中创建,但是普通版本Windows自带一个Default Switch使用的是这个模式。但是Hyper-V本身支持,没有需要在Powershell中开启,下文中会写到。
这玩意叫做 网络地址转换(Network Address Translation) ,是为了IPv4不足而诞生的。这种模式下,虚拟机间是一个局域网,是与外部分离的,连接外网时通过物理机网卡上网,路由器只能看到一个物理机IP。
这种情况,物理机也能得到一个与NAT虚拟机网络同网段的内网IP,用于与内部通信。
Hyper-V中配置NAT网络
请注意:这个交换机和Default Switch会冲突,一台物理机只能有一个NAT网络,因为他们的网段都是192.168.137.
创建交换机
首先,你需要在 Hyper-V管理器 中,新建一个虚拟交换机。
给他命名一个英文名字,这里以“nat” 为例,配置完成后虚拟机可以选择这个网卡来上网。
注意:这个交换机的类型选择内部!!
配置NAT
以管理员身份打开 PowerShell,运行以下命令
首先查询nat虚拟网卡的ifindex(千万不要看成物理网卡的!!),后面需要用到:
Get-NetAdapter
建立网关,分配IP给适配器
New-NetIpAddress -IPAddress 192.168.137.1 -PrefixLength 24 -InterfaceIndex 你刚刚获取到的NAT网卡的ifindex
配置一下网段
New-NetNat -Name vmnat -InternalIPInterfaceAddressPrefix 192.168.137.0/24
完成,现在可以给虚拟机选择nat网卡来上网了。
注意:如果没有自动分配IP,请手动分配。ip为 192.168.137.(2-255),掩码为255.255.255.0,网关为192.168.137.1,记得配置dns。
补充:桥接网络的简单配置方法
创建界面选择外部即可,如图