Hyper-V创建NAT网络

2023-06-18 09:39:55

一、NAT 概述

NAT 使用主计算机的 IP 地址和端口通过内部 Hyper-V 虚拟开关向虚拟机授予对网络资源的访问权限。网络地址转换 (NAT) 是一种网络模式,旨在通过将一个外部 IP 地址和端口映射到更大的内部 IP 地址集来转换 IP 地址。 基本上,NAT 使用流量表将流量从一个外部(主机)IP 地址和端口号路由到与网络上的终结点(虚拟机、计算机和容器等)关联的正确内部 IP 地址。

此外,NAT 允许多个虚拟机托管需要相同(内部)通信端口的应用程序,方法是将它们映射到唯一的外部端口。


二、NAT 网络的设置

  1. 以管理员身份打开 PowerShell 控制台。
  1. 虚拟交换机中创建nat交换机,生成nat网络虚拟网卡



也可以使用PowerShell命令创建

New-VMSwitch -SwitchName "nat" -SwitchType Internal


  1. 获取nat虚拟网卡序号,即ifIndex字段:17


  1. 配置 NAT 网关

或使用PowerShell配置网关

New-NetIPAddress -IPAddress 192.168.1.1 -PrefixLength 24 -InterfaceIndex 24


  1. 配置 NAT 网络

使用PowerShell配置NAT 网络,这一步好像只能在PowerShell中配置,无法在Hyper-V管理器中配置

New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.1.0/24

  1. 查看NAT 网络

使用PowerShell查看NAT 网络

Get-NetNat

  1. 删除NAT网络

Hyper-V仅支持一个NAT网络,不支持多个 NAT 网络,如果已存在一个 NAT,请将其删除

Get-NetNat | Remove-NetNat


三、将nat网络应用到虚拟机中

  1. 在虚拟机网卡设置中,将网卡交换机配置为刚创建的nat交换机
  1. 在虚拟机内部,为虚拟机配置一个nat网段的IP,并将网关指向nat网络的网关


四、NAT网络端口映射

查询端口映射情况

netsh interface portproxy show all

查看IPv4toIPv4映射

netsh interface portproxy show v4tov4

增加一个端口映射

netsh interface portproxy add v4tov4 listenport=宿主机端口 listenaddress=宿主机IP connectaddress=虛拟机IP connectport=虛拟机端口

#删除一个端口映射

netsh interface portproxy delete v4tov4 listenaddress=宿主机端口 listenport=宿主机IP

#查看映射支持的列表

netsh interface portproxy show

下列指令有效:

此上下文中的命令:

show all - 显示所有端口代理参数。

show v4tov4 - 显示 IPv4 代理连接到另一个 IPv4 端口的参数。

show v4tov6 - 显示 IPv4 代理连接到 IPv6 的参数。

show v6tov4 - 显示 IPv6 代理连接到 IPv4 的参数。

show v6tov6 - 显示 IPv6 代理连接到另一个 IPv6 端口的参数。

如: