当前位置: 首页 > news >正文

Multipass虚拟机设置局域网固定IP同时实现快速openshell的链接

本文只介绍在windows下实现的过程,Ubuntu采用22.04

安装multipass后,在卓面右下角Open shell 就可以链接默认实例Primary,当然如果你有多个虚拟机,可以针对不同内容单独建立终端的链接,而本文仅仅用Primary来说明。

一、确认网络情况和任务目标。

        在控制面板的网络连接里面,你可以看到至少有一个以太网Wlan的网络连接,也就是你上网的网卡,然后还有一个网络连接,虚拟网卡vEthernet (Default Switch),ip地址并非你局域网的ip,而是一个10开头或者172开头的结尾是1的IP地址,你当前正在操作的计算机连接到你的虚拟机,且你的计算机(宿主服务器)为网关,通过Default switch交换机访问到的Primary,而multipass的Open shell / 快速链接( multipass shell primary 命令) 也是通过这套线路进行的链接,也就是说虚拟机的eth0和Default switch交换机是对应的星际之门。

问题:如何让primary直接连接真实网络的网关(或路由器),而不通过宿主网关直接上网呢??同时还要满足可以使用open shell或小标右键快速创建终端窗口?

任务:创建一条Primary直接连接物理网关的线路,同时让multipass管理器还能继续快速openshell链接虚拟机。

二、实现

        既然要让虚拟机直接分配到一个和宿主一样的局域网ip又要让快速链接可用那就必须要再添加一块网卡(而不是更改当前网卡的链接),而这块网卡对应的,是一个和外部网关连接的全新交换机,只有这样,才不会破坏到原有宿主到虚拟机的链接,所以与默认的Default Switch交换机完全无关。

开始操作:

Multipass在windows下是基于Hyper-V管理器来创建和管理虚拟机的,所以任务栏搜索Hyper-v,打开Hyper-v管理器。

这时你可以看到左侧一个名叫你主机名字一样 或 DESKTOP-xxxxx的服务器已经链接,同时右侧有一个叫做primary的虚拟主机正在运行。

一、创建第二个虚拟交换机。

鼠标右键点击你的Hyper-v管理器中,红线这里的名字,选择虚拟交换机管理器,创建一个新的虚拟交换机,用于prime虚拟机与局域网链(原有Default switch是与宿主机链接的,始终不管它。)然后选择外部,点击创建虚拟交换机(S)按钮

名称这里,写一个你能识别出这个交换机是用于链接什么的名字,例如我的是Lan-switch,下面的网卡,选择当前链接局域网正在使用的网卡。然后按应用,再按确定

 

 至此,连接局域网的虚拟交换机创建完成。

二、添加虚拟主机第二个虚拟网卡

回到Hyper-v管理器的页面,鼠标右键点击你的虚拟机,本文中是Primary,菜单中点设置->添加硬件->网络适配器->添加

 在虚拟交换机选项中,选择你刚刚创建的Lan-switch虚拟交换机,然后点击应用确定。至此,宿主机的配置已经完成。

三、Ubuntu虚拟机设置局域网固定IP

通过右下角Mulitpass橘色小标,右键选择Open shell进行快速链接。然后先确认一下虚拟机的IP情况

 发现新添加的网卡没有认上,执行命令激活这个刚添加的第二块虚拟网卡

为了方便读者好进行复制,所以我不适用代码模式,使用引用块可以无需登录直接复制

sudo ifconfig eth1 up

执行后再次查看,应该eth1(eth0是第一块网卡负责和宿主机链接的)这个第二块网卡已经挂上了

由于Ubuntu从16之后设置IP已经不再使用ifconfig配置,所以我们直接定位完了过配置文件“Yaml”,位置在/etc/plan/目录下,版本不同名称不同,不一定都是50,但肯定是yaml结尾。

 开始编辑这个文件

执行

sudo vi 50-cloud-init.yaml

会看到除了每行开头#注释的内容外,还有以network开头的配置信息,根据我下面的信息,来修改你的信息,每行的内容以及空格的内容一定不要更换,包括开头的空格在内,都是一一堆堆的关闭。每一等级都是对上层的展开或者平级。

我们能看到eth0: 在项目后面都有个冒号“:”,在每个冒号后面必须有一个空格,否则无法识别项目。然后在version: 2的上面,开始进行编辑,添加eth1第二块网卡的信息,如果有了可以忽略,只需要修改IP地址即可,如果没有,根据我下面的内容进行编辑即可,顺序和空格一定不要乱,编辑前记得备份。

network:
    ethernets:
        eth0:
            dhcp4: true
            match:
                macaddress: 52:xx:xx:xx:f3:xx
            set-name: eth0
        eth1:
          optional: true
          addresses: [192.168.1.10/24]  #固定ip地址,网段写你自己的
          nameservers:
            addresses: [192.168.1.1]       #nameservers的地址
          routes:                                  #配置当前路由,走192.168这个交换机的地址
            - to: default
              via: 192.168.1.1
    version: 2                   

其中“-”减号代表展开的目录,nameserver下面的address前面必须空格,不能与nameserver对其,这一点写代码的朋友应该都懂。对照上面的没有问题了,wq!保存退出。

然后执行debug命令,先看看有没有什么错误,当然也可以直接apply。然后你的shell窗口会断开,重新链接即可。

sudo netplan --debug apply

sudo netplan apply

至此两个网卡和两个交换机,已经搞定了内链接和外连接的双重连接。

文章结束

相关文章:

Multipass虚拟机设置局域网固定IP同时实现快速openshell的链接

本文只介绍在windows下实现的过程,Ubuntu采用22.04 安装multipass后,在卓面右下角Open shell 就可以链接默认实例Primary,当然如果你有多个虚拟机,可以针对不同内容单独建立终端的链接,而本文仅仅用Primary来说明。 …...

Webpack5 core-js和babel-loader区别和用法

文章目录 core-js是什么,有什么用?为什么使用了babel-loader对js进行兼容性配置还需要core-js?core-js的具体用法总结 core-js是什么,有什么用? core-js是一个流行的JavaScript库,它提供了对新的JavaScript特性、API…...

软考高级架构师——5、系统规划分析与设计方法

系统计划主要用于描述从项目提出、选择到确立的过程,包括系统项目的提出与可行性 分析,系统方案的制订、评价和改进,新旧系统的分析和比较,以及现有软件、硬件和数据 资源的有效利用等问题。 1、项目的提出与选择 项目的立项目标…...

区块链学习6-长安链部署:如何创建特定共识节点数和同步节点数的链

正常prepare的时候只支持4 7 13 16个节点个数,想要创建10个节点,其中5个是共识节点,如何实现? 1. 注释掉prepare.sh的这几行: 2. 修改 crytogen的模板文件: 如果是cert模式:chainmaker-crypt…...

北航基于openEuler构建工业机器人操作系统,打造“开箱即用”的机器人基础软件平台

北京航空航天大学是国家“双一流”建设高校,以建设扎根中国大地的世界一流大学为发展目标。北京航空航天大学在机器人领域一直处于行业前沿,以其亮眼的成果和优秀的师资力量,成为国内机器人领域的重要参与者和建设者。机器人操作系统是机器人…...

孤儿进程与僵尸进程

进程退出 关于进程退出有两个函数 exit和 _exit:其主要差别是在于是否直接退出。 其流程主要区别如下: 孤儿进程(不存在危害) 父进程运行结束,但子进程还在运行(未运行结束),这…...

redis的基础命令01

1、操作库的指令 1、清除当前库---flushdb 2、清除所有库---flushAll 2、操作key的指令 最常用的指令get、set 1)set key value 2)get key 基础指令 1、del 删除单个:del key 、批量删除:del key1 key2 key3 2、exists 判断key是否…...

批量将excel文件合并

要批量合并多个Excel文件,可以按照以下步骤进行操作: 1. 导入所需的Python库:首先,您需要导入pandas库来处理Excel文件。 import pandas as pd 2. 定义文件路径和输出文件名称: input_folder "your_input_fo…...

关于Vue与服务器端的通信:如何实现登录鉴权

随着前后端分离开发模式的流行,Vue作为一种轻量级的JavaScript框架,被广泛用于前端开发。Vue可以与服务器进行通信来获取数据和进行鉴权,本文将探讨如何实现登录鉴权的过程,并给出相应的代码示例。 一、前端登录请求的发送与接收…...

GrapeCity Documents for Excel, .NET Crack

GrapeCity Documents for Excel, .NET 增加了对双面打印的支持。 GcExcel.NET支持PrintOutOptions类中的Duplex枚举,以启用/禁用页面上的双面打印。 枚举中有四个选项,用户可以相应地使用它们来打印工作簿: 双面打印。Default表示打印机的默认…...

wordpress网站Ajax留言评论+自定义评论字段

前端代码&#xff0c;下面的电话&#xff0c;公司&#xff0c;为自定义字段。 <form method"post" id"commentform" class"comment-form shansubmit" ><lable>用户</lable><input id"author" type"text&qu…...

AJAX-笔记(持续更新中)

文章目录 Day1 Ajax入门1.AJAX概念和axios的使用2. 认识URL3.URL的查询参数4.常用的请求方法和数据提交5.HTTP协议-报文6.接口文档7.form-serialize插件8.案例用户登录 Day2 Ajax综合案bootstrap弹框图书管理图片上传更换背景个人信息设置 Day3 AJAX原理XMLHttpRequestPromise封…...

模板复用和文章详情页(Go搭建qiucode.cn 之七)

模板复用其实就是动态内容驱动着部分变化的区域,公共区域是整个网站页面都在共用的内容,这便是模板复用的妙处。 模板复用 作为服务端编程语言的Golang,在web模板渲染引擎上当然也不逊色于其他同类型的服务端语言,它同样也有属于自己的那一套模板渲染引擎。 更为确切的叫…...

Android 使用SQLite的案例详解

1、说明 sqlite是个轻量级的数据库,可用于嵌入式。有时候做本地的web开发的时候,我会把sqlite作为内置数据库,这样便于部署,直接启动应用即可。 这里主要是将android中的使用过程记录一下。主要包含,数据如何初始化,在不同的activity中如何使用,以及增删改查的实现。 …...

linux 命令--查看网络端口命令

使用 netstat 检查端口 netstat 是一个命令行工具&#xff0c;可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序&#xff0c;用grep管道可以过滤出想要的字段 -a &#xff1a;all&#xff0c;表示列出所有的连接&#xff0c;服务监听&#xff…...

python一个请求chatgpt3.5模型例子

当然可以&#xff01;你可以使用OpenAI的 openai.ChatCompletion.create() 方法来请求 ChatGPT 3.5 模型的回复。以下是一个使用Python进行请求的示例代码&#xff1a; python import openai# 设置OpenAI API的访问密钥 openai.api_key YOUR_API_KEY# 发送请求给ChatGPT模型 …...

数据结构:栈的实现(C实现)

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》 文章目录 前言一、栈的实现思路1. 结构的定义2. 初始化栈(StackInit)3. 入栈(StackPush)4. 出栈(StackPop)5. 获取栈顶元素(StackTop)6. 检查栈是否为空(StackEmpty)7. 销毁栈(StackDestroy) 二、…...

v-md-editor自定义锚点(生成目录)数组转树结构

接前两篇博文&#xff0c;最终方案终于定了&#xff0c;也把之前做的编辑器模式给否决了&#xff0c;原因是系统中有老的文档需要平替&#xff0c;因此就不能通过编辑器这种模式了&#xff0c;太麻烦了。 最终方案&#xff1a;线下手动pandoc word转markdown&#xff0c;然后将…...

java 11 新特效解读(2)

目录 全新的HTTP 客户端API 更简化的编译运行程序 废弃Nashorn引擎 ZGC 优势&#xff1a; ZGC的设计目标是&#xff1a; 在当前JDK中看不到什么&#xff1f; 一个标准化和轻量级的JSON API 新的货币API 展望 全新的HTTP 客户端API HTTP&#xff0c;用于传输网页的…...

linux patch 和 git patch

一、Linux patch 文件生成和应用 生成方式1&#xff1a;patch #多文件打 patch diff -uparN file1 file2 > xx.diff diff -uparN folder1 folder12 > xx.diff ------------------------------------------------------- diff --help -u 显示有差异行的前后几行(上下文)…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...