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

news2024/12/1 8:41:46

文章目录

  • 环境说明
  • 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 自带的“移动热点”功能,可尝试将其关闭,再查看网络是否正常。
实在不行只有重启物理机了~~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ventoy装机

文章目录 Ventoy安装操作系统问题U盘无法识别问题BIOS设置图片 Ventoy安装操作系统问题 当前使用的m.2(nvm)可以使用在台式机上。 "verification failed sercury violation"这个问题似乎与使用Ventoy创建启动盘并在启用了Secure Boot&#x…

为什么写博客对程序员很重要

之前写过一段时间博客,但是后面半途而废了。最近开始频繁更新,把自己一些学习心得系统得整理后发布出来,希望以后能够坚持写下去。 写博客对程序员有多重要?这个是自己在反思的一个问题,上下班在地铁上想,…

windows下QT如何集成OpenCV

说明 我在windows下使用QT Creator12创建的CMake项目,需要OpenCV的一些功能。由于安装的时候我选择的QT组件都是MInGW的,所以无法使用VS studio版本的dll库。 为什么vs的版本不能用 我安装QT选择的是MinGW版本,本地编译QT工程只能选择MinG…

HarmonyOS实战开发-如何实现一个简单的电子相册应用开发

介绍 本篇Codelab介绍了如何实现一个简单的电子相册应用的开发,主要功能包括: 实现首页顶部的轮播效果。实现页面跳转时共享元素的转场动画效果。实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 Swiper:滑块视图容…

Matlab-写入mhd和raw医学图像处理格式文件

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 mhd和raw是什么? MHD(MetaImage)和RAW(Raw Image Data)是用于医学图像…

数字化坚鹏:小熊电器面向数字化转型的大数据顶层设计实践培训

小熊电器面向数字化转型的大数据顶层设计实践培训圆满结束 ——努力打造“数据技术营销”三轮驱动的数字化领先企业 小熊电器股份有限公司由李一峰创立于2006年,是一家专业从事创意小家电研发、设计、生产和销售的实业型企业。2019年8月23日正式在深交所挂牌上市。…

XUbuntu22.04之Typora快捷键Ctrl+5不生效问题(二百二十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Discourse 最多允许有几个分类级别

和 DISCUZ 不同,DISCUZ 可以允许分类下面还有分类,再继续分类这种嵌套式分类。 Discourse 最多只允许有 2 个分类。 如果你在已有的分类下再继续分类的话,系统会提示错误: 意思就是子分类不能再分子分类。 Discourse 尽量采取了…

Web前端—(原生JS)歌词滚动效果

歌词滚动效果实现 歌词滚动效果HTML部分CSS部分JS部分解析歌词字符串,得到歌词的对象数组计算在当前情况下,播放器播放到第几秒的情况创建歌词元素设置ul元素的偏移量最后对时间变化的事件进行监听完整JS代码 歌词滚动效果 实现效果如图所示&#xff1a…

PyCharm中配置PyQt5并添加外部工具

Qt Designer、PyUIC和PyRcc是Qt框架下的三个重要工具,总的来说,这三个工具各司其职,相辅相成,能显著提升Qt开发的速度与效率。 Qt Designer:是一个用于创建图形用户界面的工具,可轻松构建复杂的用户界面。…

Photoshoot 2(Java)

Photoshoot 2 题目描述 在一个似曾相识的场景中,Farmer John 正在将他的 N 头奶牛(1≤N≤10^5)排成一排(为了方便将它们按 1⋯1⋯N 编号),以便拍照。 最初,奶牛从左到右按照 a1,a2,⋯,aN 的顺…

Facebook轮播广告是什么?投放过程中有哪些需要注意的吗?

轮播广告是Facebook广告形式中的一种,可以把3—5个广告合并到一个可滚动的广告单元中。轮播广告会出现在新鲜事即News Feed中,是独立站卖家常用的一种广告形式 为什么选择轮播广告? 转化率更高:相较于单图广告,轮播广…

2024 ccfcsp认证打卡 2022 06 01 归一化处理

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 输入数字的个数int[] a new int[1010]; // 创建一个数组来存储输入的数字double sum 0; // 用于计算所有输入数字的总…

Linux基础命令篇:操作系统服务管理(systemctl service)

Linux基础命令篇:操作系统服务管理(systemctl & service) service和systemctl是两个用于管理Linux系统服务的命令。它们分别属于SysV init和systemd系统,这两个系统是Linux中用于初始化和管理服务的不同框架。在许多现代Linux…

四、Yocto创建静态IP和VLAN(基于raspiberrypi 4B)

Yocto创建VLAN配置 在车载域控中很多时候需要创建VLAN,本小节记录如何为yocto构建出来的image自动化创建静态IP以及VLAN。 关于各种VLAN的配置参考:VLAN 1. ubuntu系统中使用netplan创建VLAN 正常情况下我们在ubuntu系统中可以通过netplan来自动化创建…

《数据结构学习笔记---第七篇》---栈和队列的OJ练习

1. 括号匹配问题。OJ链接 step1:思路分析 : 1.括号匹配,我们首先考虑用栈实现,我们通过符号栈帧的思想知道,求前中后缀表达式的时候用的就是栈帧,操作数栈和符号栈。 2.根据常见的情况 考虑怎么使用栈,首先…

【Qt】:信号与槽(二)

信号与槽 一.带参数的信号和槽二.信号与槽的多对多连接三.信号与槽的断开四.lamda表达式定义槽函数 一.带参数的信号和槽 Qt的信号和槽也⽀持带有参数,同时也可以⽀持重载.此处我们要求,信号函数的参数列表要和对应连接的槽函数参数列表⼀致.(一致指的是类型一致&a…

微信小程序【从入门到精通】——服务器的数据交互

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

LoRA 及其衍生技术总览:An Overview of the LoRA Family

编者按: 对于大语言模型的微调训练来说,传统的全参数微调方法需要处理数百万甚至数十亿级别的参数,计算量和显存占用都非常大。而 LoRA 这种技术方案,通过引入少量的可训练矩阵来调整预训练模型的行为,极大降低了训练所…

EasyRecovery2024中文版数据恢复软件功能全面介绍

EasyRecovery2024是世界著名数据恢复公司 Ontrack 的技术杰作,它是一个威力非常强大的硬盘数据恢复工具。能够帮你恢复丢失的数据以及重建文件系统。 EasyRecovery不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输…