• 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. 确认虚拟网卡类型是“内部”,不是外部或专用,如下图所示。

    f4993fcd2c5045feae1ec28a431c2bb0.png

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

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

    3. 解决步骤

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

    我这里是22. 后面要用。

    Get-NetAdapter

    1. PS C:\WINDOWS\system32> Get-NetAdapter
    2. Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
    3. ---- -------------------- ------- ------ ---------- ---------
    4. WLAN Intel(R) Dual Band Wireless-AC 8265 15 Up 50-76-AF-1A-D1-E1 300 Mbps
    5. 蓝牙网络连接 Bluetooth Device (Personal Area Netw... 9 Not Present 50-76-AF-1A-D1-E5 0 bps
    6. 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

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

    1. PS C:\WINDOWS\system32> Get-NetNat -Name MyNATnetwork
    2. Name : MyNATnetwork
    3. ExternalIPInterfaceAddressPrefix :
    4. InternalIPInterfaceAddressPrefix : 192.168.0.0/24
    5. IcmpQueryTimeout : 30
    6. TcpEstablishedConnectionTimeout : 1800
    7. TcpTransientConnectionTimeout : 120
    8. TcpFilteringBehavior : AddressDependentFiltering
    9. UdpFilteringBehavior : AddressDependentFiltering
    10. UdpIdleSessionTimeout : 120
    11. UdpInboundRefresh : False
    12. Store : Local
    13. 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网段的,如果连接不上虚拟机的话,可以先检查下是否存在问题,如有问题,直接修改为和虚拟机网络一样即可。自己的配置如下,供参考:

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

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

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

  • 相关阅读:
    2分钟彻底搞懂JS的版本演进
    PG函数中有OUT则忽略 RETURNS SETOF record AS $$
    专用短程通讯(DSRC)技术介绍
    【上海大学计算机组成原理实验报告】四、指令系统实验
    准确-K8s系列文章-修改containerd 默认数据目录
    stm32cubemx hal学习记录:PWR 低功耗睡眠模式
    (附源码)ssm失物招领平台 毕业设计 271621
    根据先序遍历和中序遍历生成后序遍历
    win共享文件进不去
    DHorse(K8S的CICD平台)的实现原理
  • 原文地址:https://blog.csdn.net/zhanghai4155/article/details/126689886