小樱 发表于 2022/1/14 05:25

我发现个问题2022的hyper还没nat模式。。Windows10的反而有,没nat只能做ics网络共享,端口映射到公网

我发现个问题2022的hyper还没nat模式。。Windows10的反而有,没nat只能做ics网络共享,端口映射到公网



创建NAT网卡方法
New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
运行来查找接口索引
Get-NetAdapter
你的输出应类似下面的形式:
PS C:\Users\Administrator> Get-NetAdapter

Name                      InterfaceDescription                  ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                  ------- ------       ----------             ---------
VMware Network Adapte...8 VMware Virtual Ethernet Adapter for ...      17 Up         00-50-56-C0-00-08       100 Mbps
vEthernet (Intel(R) Et... Hyper-V Virtual Ethernet Adapter             22 Up         30-9C-23-AC-59-45         1 Gbps
VMware Network Adapte...1 VMware Virtual Ethernet Adapter for ...       6 Up         00-50-56-C0-00-01       100 Mbps
vEthernet (SwitchName)    Hyper-V Virtual Ethernet Adapter #2          37 Up         00-15-5D-8F-DF-00      10 Gbps
以太网 4                  Intel(R) Ethernet Connection (2) I21...       2 Up         30-9C-23-AC-59-45         1 Gbps

内部交换机的名称将类似于 vEthernet (SwitchName),接口描述将为 Hyper-V Virtual Ethernet Adapter。 请记下其 ifIndex 以便在下一步中使用。

使用 New-NetIPAddress 配置 NAT 网关。

下面是常规命令:
New-NetIPAddress -IPAddress <NAT Gateway IP> -PrefixLength <NAT Subnet Prefix Length> -InterfaceIndex <ifIndex>
若要配置网关,你将需要一些有关你的网络的信息:

IPAddress - NAT 网关 IP 指定要用作 NAT 网关 IP 的 IPv4 或 IPv6 地址。
常规形式将为 a.b.c.1(例如 172.16.0.1)。 尽管最后一个位置不一定必须是.1,但通常是(基于前缀长度)

通用网关 IP 为 192.168.0.1

PrefixLength -- NAT 子网前缀长度定义的 NAT 本地子网大小(子网掩码)。 子网前缀长度将介于 0 到 32 之间的一个整数值。

0 将映射整个 Internet,32 则只允许一个映射的 IP。 常用值范围从 24 到 12,具体要取决于多少 IP 需要附加到 NAT。

常用 PrefixLength 为 24 -- 这是子网掩码 255.255.255.0

InterfaceIndex -- ifIndex 是你在上一步中确定的虚拟交换机的接口索引。

运行以下内容来创建 NAT 网关:
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 37

使用 New-NetNat 配置 NAT 网络。

下面是常规命令:
New-NetNat -Name <NATOutsideName> -InternalIPInterfaceAddressPrefix <NAT subnet prefix>
若要配置网关,你将需要提供一些有关网络和 NAT 网关的信息:

Name - NATOutsideName 描述 NAT 网络的名称。 将使用此参数删除 NAT 网络。

InternalIPInterfaceAddressPrefix - NAT 子网前缀同时描述上述 NAT 网关 IP 前缀和上述 NAT 子网前缀长度。

常规形式将为 a.b.c.0/NAT 子网前缀长度

综上所述,对于本示例,我们将使用 192.168.0.0/24

对于我们的示例,运行以下命令以设置 NAT 网络:
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
此时就通过命令创建成功了一个NAT网卡,,然后在虚拟机中网卡设置填写192.168.0.2 网关192.168.0.1 子网掩码255.255.255.0,dns在填上114.114.114.114就可以上网了

如果要删除NAT网络
检查系统中的NAT
Get-NetNat
确认删除
Get-NetNat | Remove-NetNat

注:端口开放无法映射到公网上,hyper的NAT网卡的端口只能在同一个内网下访问,公网无法访问到
找了一下好像又有办法做端口映射了
常规命令:
netsh interface portproxy add v4tov4 listenport=外网端口 listenaddress=主IP connectaddress=私网IP connectport=私网IP端口
运行命令:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=142.132.143.223 connectaddress=192.168.0.2 connectport=80
运行后直接成功通网,端口通到了公网访问成功
内网端口可以不一致
netsh interface portproxy add v4tov4 listenport=6666 listenaddress=142.132.143.223 connectaddress=192.168.0.2 connectport=22

删除映射
常规命令
netsh interface portproxy delete v4tov4 listenaddress=主IP listenport=外网端口

运行命令
netsh interface portproxy delete v4tov4 listenaddress=142.132.143.223 listenport=6666

查询端口映射情况
netsh interface portproxy show v4tov4

查询这个虚拟机IP所有的端口映射。
netsh interface portproxy show v4tov4|find "192.168.0.2"

通过这个方式获取到的端口,虚拟机只能取到IP为192.168.0.1的来路IP,,,用ICS网络共享的话,通过外部端口访问后就能取到真实IP,不过NAT视乎性能吞吐效率更高一些?


转自官方教程:https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/setup-nat-network#create-a-nat-virtual-network

不可名 发表于 2022/6/8 01:37

路过标记{:3020:}
页: [1]
查看完整版本: 我发现个问题2022的hyper还没nat模式。。Windows10的反而有,没nat只能做ics网络共享,端口映射到公网