创建NAT内部网络,使用PowerShell完成。
https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/setup-nat-network
1.创建Internal网卡,名称为SwitchNAT
PS> New-VMSwitch -SwitchName "SwitchNAT" -SwitchType Internal
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
SwitchNAT Internal
2.获得SwitchNAT的ifIndex,此例子是45
PS> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
vEthernet (SwitchNAT) Hyper-V Virtual Ethernet Adapter 45 Up 00-15-5D-CF-BD-05 10 Gbps
Bluetooth Network Conn... Bluetooth Device (Personal Area Netw... 4 Disconnected xx-xx-xx-xx-xx-xx 3 Mbps
Ethernet Intel(R) Ethernet Connection I219-LM 14 Disconnected xx-xx-xx-xx-xx-xx 0 bps
Wi-Fi Intel(R) Dual Band Wireless-AC 8260 12 Up xx-xx-xx-xx-xx-xx 115.6 Mbps
3.创建一个NAT网络配置,名称为MyNAT4HyperV
PS> New-NetNat -Name MyNAT4HyperV -InternalIPInterfaceAddressPrefix 192.168.0.0/24
Name : MyNAT4HyperV
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 192.168.0.0/24
IcmpQueryTimeout : 30
TcpEstablishedConnectionTimeout : 1800
TcpTransientConnectionTimeout : 120
TcpFilteringBehavior : AddressDependentFiltering
UdpFilteringBehavior : AddressDependentFiltering
UdpIdleSessionTimeout : 120
UdpInboundRefresh : False
Store : Local
Active : True
/---------------------------------------------------------------------------------------\
如果产生里一个错误 87,说明Windows Server 2016不支持-InternalIPInterfaceAddressPrefix参数
先查看已有的NetNat配置:
PS> Get-NetNat
Name : Hf8c04975-98c5-4ee0-8cbf-6b4b629418c5
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 172.26.112.0/20
IcmpQueryTimeout : 30
TcpEstablishedConnectionTimeout : 1800
TcpTransientConnectionTimeout : 120
TcpFilteringBehavior : AddressDependentFiltering
UdpFilteringBehavior : AddressDependentFiltering
UdpIdleSessionTimeout : 120
UdpInboundRefresh : False
Store : Local
Active : True
已经存在NetNat,后面的操作用InternalIPInterfaceAddressPrefix的IP前缀进行。
子网掩码:20位划分子网(8位.8位.4位.0 = 255.255.240.0)
ip可用172.26.112.0到172.26.127.0,下面用172.26.127.0段进行设置
其他错误,尝试下面方法:
PS> net stop winmgmt
PS> move $env:windir\System32\Wbem\Repository $env:windir\System32\Wbem\Repository_bad
PS> net start winmgmt
PS> net start vmcompute // 启动Hyper-V服务
\---------------------------------------------------------------------------------------/
4.创建NAT网关
PS> New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 45
或者
PS> New-NetIPAddress -IPAddress 172.26.127.1 -PrefixLength 20 -InterfaceIndex 45
IPAddress : 192.168.0.1
InterfaceIndex : 45
InterfaceAlias : vEthernet (SwitchNAT)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : ActiveStore
IPAddress : 192.168.0.1
InterfaceIndex : 45
InterfaceAlias : vEthernet (SwitchNAT)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Invalid
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : PersistentStore
5.在HyperV的虚拟机网卡配置中选择SwitchNAT
6.启动虚拟机,手动配置
IP为192.168.0.x,
子网掩码255.255.255.0,
网关192.168.0.1,
DNS为8.8.8.8,8.8.4.4
或者
IP为172.26.127.x,
子网掩码255.255.240.0,
网关172.26.127.1,
DNS为8.8.8.8,8.8.4.4
-----
删除命令
先停止使用网卡(关闭虚拟机或服务)
PS> Get-NetNat "MyNAT4HyperV"| Remove-NetNat
PS> Remove-NetIPAddress -InterfaceAlias "vEthernet (SwitchNAT)" -IPAddress 192.168.0.1
PS> Remove-NetIPAddress -InterfaceAlias "vEthernet (SwitchNAT)" -IPAddress 172.26.127.1
PS> Remove-VMSwitch -SwitchName "SwitchNAT"