我发现个问题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
路过标记{:3020:}
页:
[1]