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

2024-03-30 14:12

本文主要是介绍Hyper-V 虚拟机设置静态 IP 和外网访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 环境说明
  • 1 问题简介
  • 2 解决过程

环境说明

  • 宿主机操作系统: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 虚拟机设置静态 IP 和外网访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861707

相关文章

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

vue3项目将所有访问后端springboot的接口统一管理带跨域

vue3项目将所有访问后端springboot的接口统一管理带跨域 一、前言1.安装Axios2.创建Axios实例3.创建API服务文件4.在组件中使用API服务 二、跨域三、总结 一、前言 在Vue 3项目中,统一管理所有访问后端Spring Boot接口的最佳实践是创建一个专门的API服务层。这可以让你的代码更加模块化、可维护和集中管理。你可以使用Axios库作为HTT

[vivado][IP核]FFT

刘东华的IP核详解: 1、 2、

[vivado][IP核]DDS

刘东华的IP核详解: 1、 这里的是指IP核配置中的相位数据的宽度。 2、 实际使用此IP核时并没有“频率分辨率”可以配,是靠改变来变的。 3、 4、 5、 数据输出的ready在数据正式输出时才会有。 自己仿真: 使用SIN/COS LUT only的模式,使用一个累加器作为相位输入,不知怎么,输出为X。

[ip核][vivado]aurora

Xapp1193:  discovered:1)并不是所有芯片都支持aurora.xc7z010就没有。                     2)XDC文件的指令-允许未约束的引脚的存在:                 set_property BITSTREAM.General.UnconstrainedPins {Allow} [current_design] PG046

[ip核][vivado]Block Menory Gennerator 学习

<刘东华的xilinx系列FPGA芯片IP核详解>读书摘录: 1. 2. 3.

[ip核][vivado]FIFO 学习

<xlinx FPGA应用进阶 通用IP核详解和设计开发>读书摘录: 1.        2.3.仿真模型 特点总结:1)复位后会有busy状态,需要等待wr_rst_busy信号低电平后才能正常写入                  2)prog_full信号的高电平长度可调                  3)仿真中的读状态很奇怪,并没有正常读取,都是XXX的状态。 所用的te

如何设置windows计划任务

如何设置windows计划任务 前言:在工作过程中写了一个python脚本,用于调用jira接口查询bug单数量,想要在本地定时任务执行,每天发送到钉钉群提醒,写下操作步骤用于记录。 1. 准备 Python 脚本 确保你的 Python 脚本已经保存到一个文件,比如 jira_reminder.py。 2. 创建批处理文件 为了方便任务计划程序运行 Python 脚本,创建一个批处理文

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe