Hyper-V 虚拟机设置静态 IP 和外网访问

文章讲述了在Windows11中使用Hyper-V创建Debian12虚拟机时,如何解决IP自动改变的问题,包括创建自定义虚拟交换机、设置静态IP、配置NAT网络,以及处理可能出现的防火墙和网络环境影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境说明

  • 宿主机操作系统:Windows 11 专业版
  • 漏洞复现操作系:debian-live-12.5.0-amd64-standard

1 问题简介

在 Windows 上用自带的 Hyper-V 虚拟机管理应用创建了一个 Debian 12 虚拟机,配置静态 IP 的时候出了点问题。

Hyper-V 默认有一个 Default Switch 内部网络虚拟交换机,由于自动配置了 NAT 服务,所以在上面的虚拟机可以访问物理网络。但是问题是,这个默认的每次重启都会自动改变 IP, 即使你在网络适配器里手动设置了 IP 也没用。

2 解决过程

步骤01、

使用 Hyper-V 的图形界面向导创建虚拟交换机,图形界面的过程展示,如图所示。

在这里插入图片描述

步骤02、

新建虚拟网络交换机,输入名称,选择内部网络,点击确定,如图所示。

在这里插入图片描述

在这里插入图片描述

步骤03、

右键选中需要设置的虚拟机的设置选项,弹出如下框,选择刚才新建的 Debian 12 的虚拟交换机,点击确定,之后便可重启虚拟机使之生效,如图所示。

在这里插入图片描述

在这里插入图片描述

步骤04、

在宿主机的网络设置,打开控制面板->网络和共享中心->更改适配器设置: 找到刚刚在 Hyper-V 上新增的虚拟网络交换机,右键选择属性,如图所示。

在这里插入图片描述

步骤05、

选择如下 IPv4 协议,设置如下 IP 地址和子网掩码,其他可留空,IP地址必须是192.168.X.1 的设置,这里的 X=1 是刚才我们在 Debian 12 上设置的网段,需保持一致,如图所示。

在这里插入图片描述

步骤06、

然后给 Debian 12 虚拟机设置静态 IP 和 DNS nameserver,重启验证下,如图所示。

# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

# /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.20.20
netmask 255.255.255.0
gateway 192.168.20.1

在这里插入图片描述

这里遇到了一个问题,设置好 IP 在同一个网段后,宿主机可以 ping 通虚拟机,但是虚拟机没法 ping 通宿主机。这和 Hyper-V 内部类型网络的描述不相符啊,后来坑了好久,才发现是宿主机防火墙禁掉了 ping 的 icmp 协议包,通过 telnet 其他放开的端口验证确实没问题。

步骤06、

Hyper-V NAT 网络设置固定 IP / DHCP

Hyper-V 默认的 Default Switch 同时支持了 NAT 网络以及 DHCP,虚拟机能够访问外网。
但使用过程中发现这个 IP 网段经常变化,而且 Hyper-V 没有提供管理其 NAT 网络与 DHCP 的图形化界面功能。
如果开发者需要同时管理多个 VM,且在局域网中无法为他们单独分配固定 IP 时,使用可自行配置的 NAT 网络显得尤为重要。
本文提供一种自定义管理 Hyper-V NAT 网络的方法,虚拟机能够通过固定 IP 连接至该网络,且能够访问外网。

添加一个虚拟交换机能够支持 192.168.20.0 / 24 网段,并能够将 Debian 12 虚拟机通过固定IP连接到该网段。
支持物理机与虚拟机的相互访问,且支持虚拟机访问外网。

以管理员身份启动PowerShell ,执行下列命令,如图所示。

New-NetNat -Name Static-NAT -InternalIPInterfaceAddressPrefix 192.168.20.0/24

其中 Static-NAT 为新建 NAT 对象的名称,可根据实际情况自行设定;

192.168.20.0/24 为需要NAT的内网地址,注意是网络地址。

在这里插入图片描述

需要注意的是,Windows 系统只能同时为一个网段提供 NAT 服务。

步骤07、

到这里就已经配置完成了,验证外网是否可以访问,如图所示。

在这里插入图片描述

步骤08、

如果你配置成功了,这一步可以忽略。

操作失误或需要修改 NAT 网络时,可以删除之前的创建的 NAT 网络,进行下面前你应该确认仅有一个 NAT 网络,如图所示。

# 确认获取到的 NAT 只有一个且是你想要删除的
Get-NetNat 

# 删除 NAT 网络
Get-NetNat | Remove-NetNat 

# 删除 NetIPAddress 命令
Remove-NetIPAddress -InterfaceAlias "vEthernet (NAT)"

有时会出现 NAT 网络无法访问外网的情况,一般与移动热点、电脑睡眠、网络环境变化等情况有关。
如果开启了 Win10 自带的“移动热点”功能,可尝试将其关闭,再查看网络是否正常。
实在不行只有重启物理机了~~

在这里插入图片描述

### Hyper-V 虚拟机配置外网连接教程 为了使Hyper-V中的虚拟机能正常访问外部网络并保持固定IP地址,需遵循特定的配置流程。 #### 配置Windows端口转发与静态IP设置 对于遇到重启后虚拟网卡IP被重设至172网段的情况,在Win10环境下属于常见现象[^1]。解决方法之一是在Windows系统的网络适配器属性里指定静态IP给用于Hyper-V的虚拟交换机关联的真实物理网卡或内部/专用类型的虚拟网卡,并确保该静态IP位于目标子网内。此操作有助于维持稳定通信环境,防止因动态分配而导致的连通性问题。 #### 设置CentOS或其他Linux发行版内的网络参数 针对运行于Hyper-V上的Linux类操作系统而言,应当调整其自身的网络接口配置文件以匹配宿主机所提供的网络条件。具体做法涉及修改`/etc/sysconfig/network-scripts/ifcfg-ethX`(其中X代表具体的网卡编号, 可通过命令`ip addr`确认)[^3] 文件的内容: ```bash BOOTPROTO=static ONBOOT=yes NM_CONTROLLED=no PREFIX=24 # 假定C类子网掩码长度为24位 GATEWAY=<路由器网关> DNS1=<首选DNS服务器> DNS2=<备用DNS服务器> IPADDR=<期望设定的固定IPv4地址> NETMASK=255.255.255.0 # 对应前缀长度24位 ``` 以上更改完成后保存退出,并执行如下指令让新配置生效: ```bash systemctl restart network.service ``` #### 创建合适的虚拟交换机类型 当构建多台相互协作的服务集群时,合理规划不同用途下的虚拟交换机会极大地简化管理难度以及提升性能表现。通常情况下会建立两种模式——“外部”型用来实现VM对外部资源(比如Internet)的请求;而“私有”或者“仅限内部”的则服务于同一局域网上各成员间的交互需求[^2]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值