Hyper-V虚拟机连接互联网配置教程

1. 参考地址及说明

微软官方教程:设置 NAT 网络 | Microsoft Docs设置 NAT 网络https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/setup-nat-network#create-a-nat-virtual-network本文主要基于上述微软官方教程,进行了探索。

补充说明:本教程仅是让虚拟机能够连接外网,不保证外网能访问到该虚拟机。

2.  问题描述

在hyper-V(win10 homebasic)中创建了centos7.4虚拟机,起初通过centos网络配置后,可以连接互联网,但是过了一段时间后,莫名其妙的无法连接互联网了,本文章主要解决该问题。

前提条件:

  1. 虚拟网卡已创建,默认是“vEthernet (Default Switch)”,可以通过控制面板-网络和internet查看。默认在创建虚拟机时,就已经创建。如果没有虚拟网卡,请参考官方教程“创建内部交换机”部分。
  2. 确认虚拟网卡类型是“内部”,不是外部或专用,如下图所示。

Hyper-V虚拟机连接互联网配置教程_第1张图片

        注意:有些解决方案,显示需要创建“外部”虚拟网卡,以通过物理机访问互联网。本人没有研究,但是看起来比较复杂,而且容易导致本机网络出现问题。因此,不建议这样做。根据本教程,完全可以通过内部虚拟网卡,实现虚拟机的网络访问,原理就是通过“NAT”网络(网络地址转换),感兴趣的自己查阅相关资料。

        3. 以管理员身份,打开PowerShell,不要用cmd.

3. 解决步骤

3.1 首先查看是否存在虚拟网卡(vEthernet),并记下该虚拟网卡对应的ifIndex

我这里是22. 后面要用。

Get-NetAdapter

PS C:\WINDOWS\system32> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
WLAN                      Intel(R) Dual Band Wireless-AC 8265          15 Up           50-76-AF-1A-D1-E1       300 Mbps
蓝牙网络连接              Bluetooth Device (Personal Area Netw...       9 Not Present  50-76-AF-1A-D1-E5          0 bps
vEthernet (Default Swi... Hyper-V Virtual Ethernet Adapter             22 Up           00-15-5D-31-6E-00        10 Gbps

3.2  去除与该虚拟网卡相关的所有NAT 网关IP设置。

Remove-NetIPAddress -InterfaceIndex 22

3.3 去除所有的NAT网络配置

Remove-NetNat

3.4 重新配置虚拟网卡对应的NAT网关IP

 New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 22

在这里,本人配置ip地址为192.168.0.1,子网掩码长度为24,其实也可以配置成其他的地址,大家可自行尝试。

配置好后,可以通过以下指令查看:

Get-NetIPAddress -InterfaceIndex 22

3.5 重新构建NAT网络配置

 New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24

其中,-Name内容是自定义的,后期可以通过该名字去除该NAT网络配置,即

Remove-NetNat -Name MyNATnetwork.

大家可以看到在3.3中并没有这样做,就是默认去除所有的配置。

3.6 查看NAT网络配置

Get-NetNat -Name MyNATnetwork

如果能看到,则证明配置成功。

PS C:\WINDOWS\system32> Get-NetNat -Name MyNATnetwork


Name                             : MyNATnetwork
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

3.7  在centos虚拟机中配置网络

教程很多,大家自行搜索吧。

大致就是在root账户下,修改/etc/sysconfig/network-scripts/目录下对应网卡的配置文件,然后通过

systemctl restart network

命令,重启网络。

配置项主要是ip分配方式、ip地址,网关地址,dns地址。

ip分配方式上喜欢静态分配,即static

ip地址自己设定,跟上述配置在一个网段即可,

网管地址就是上面设置的NAT网关IP,

dns地址也可以直接填上面设置的NAT网关IP。

4. 后记

希望本教程能给大家带来帮助,如有问题,请留言探讨。

最近发现一个问题,适配器配置的ip有可能会自动重置为172网段的,如果连接不上虚拟机的话,可以先检查下是否存在问题,如有问题,直接修改为和虚拟机网络一样即可。自己的配置如下,供参考:

Hyper-V虚拟机连接互联网配置教程_第2张图片

5、最近的一些使用心得-2023-7-8日更新

如果按照上述步骤配置完后,如果发现每次重启windows系统后,虚拟网卡的ip地址会被重置为172网段,这是正常的,是win10的默认行为。但是,这会导致按照设置的ip地址通过ssh连不上虚拟机,并且虚拟机无法上网。大家不怕麻烦的话,直接把虚拟网卡地址改成跟设置的虚拟机IP地址同网段即可。

实际上,还有种更巧妙的方法,就是为虚拟机设置双网卡,大家感兴趣的话可以自行搜索。我也会根据情况,计划在后面专门讲一下这个事情。

你可能感兴趣的:(win10虚拟机,网络,linux,虚拟机,网络配置)