当前位置: 首页 > 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 显示有差异行的前后几行(上下文)…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...