基于VirtualBox和Ubuntu的虚拟环境搭建

VirtualBox简介

VirtualBox 是一款开源虚拟机软件。 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。简单易用,可虚拟的系统包括Windows(从Windows 3.1到Windows 10、Windows Server 2012,所有的Windows系统都支持)、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统。

 VirtualBox的安装与配置

本实验使用VirtualBox-7.0.10 进行演示。对于安装包,大家可以前往 VirtualBox官网下载页面https :/ / www. virtualbox.org/wiki/Downloads下载其7.0版本安装包进行安装。

安装的过程中,为了避免C盘空间不足,请选择D盘或者其他盘的一个空文件夹作为安装路径(必须是空文件夹),其它直接默认就可以了。

 安装完成以后,进入VirtualBox-7.0.10主页面,如图所示

 配置虚拟机默认位置

首选在D盘(或在安装时选择的其他盘处)建一个空文件夹VirtualBox VMs,然后在VirtualBox的首页,点击“管理”→“全局设定”进入全局设定界面,设置虚拟机的默认存放位置为“D:\VirtualBox VMs”,最后点击“确定”按钮保存修改。

 配置虚拟网络

为了实现多台虚拟机之间的网络联通,在VirtualBox安装完成后首先创建一个主机网络(Host-Only Ethernet Adapter)。选择菜单栏中的“管理”→“工具”→“主机网络管理器”打开主机网络管理器

然后单击“创建”按钮可以新建一个VirtualBoxHost-Only Ethernet Adapter。在创建过程中可能会遇到系统权限请求,允许即可,VirtualBox Host-Only Ethernet Adapter创建好之后,在主机网络管理器下方的网卡选项中选择手动配置网卡,将IPv4地址设置为192.168.56.1,IPv4网络掩码设置为255.255.255.0 , IPv6地址及网络掩码长度不需要修改。在VirtualBox 7.0版本中,系统已经自动为我们创建好了一个VirtualBoxHost-Only Ethernet Adapter。

同时,注意建议保持DHCP服务器开启

 Ubuntu虚拟主机的创建和配置

在VirtualBox主界面,单击“控制“→“新建”按钮创建3台虚拟主机。

这里需要设置虚拟机的名称,在本实验中建议将3台虚拟主机分别命名为master,slave1,slave2,以便识别。类型选择“Linux”,版本选择“Ubuntu(64-bit)”或“Other Linux(64-bit)”,单击“下一步”按钮可以进行虚拟机配置的设置。

 接着,将虚拟主机内存至少设置为2GB(即2048MB),以保证运行流畅。

接着,为虚拟主机机创建足够大小的虚拟硬盘,至少30G。 

在如图所示的界面为虚拟机的配置,点击完成即可。 

在创建完成后,选中虚拟机,打开右侧的虚拟机设置,点击“设置”按钮,进行网络设置

其中网卡1默认为“网络地址转换(NAT)”,不需要更改

选择网卡2,选中“启用网络连接”复选框,连接方式选择“仅主机(Host-Only)网络”,界面名称选择前面建立的VirtualBox Host-OnlyEthernet Adapter。

在高级选项中设置混杂模式为“全部允许”,其他选项保持默认。

 

 Ubuntu的安装

在如图所示的界面中,点击“启动”按钮,启动虚拟主机.接着,启动界面的光驱弹窗中,选择加载Ubuntu的ISO镜像文件位置,即可在虚拟主机上进行ubuntu的安装。本实验选用的是ubuntu-20.04-desktop-amd64的64位版本﹐可以前往ubuntu-官网或各镜像站自己进行ISO镜像文件下载:https://old-releases.ubuntu.com/releases/focal/ubuntu-20.04-desktop-amd64.iso

 

选择好ISO镜像文件后,单击“挂载并尝试启动”,然后在ubuntu的安装引导页面,默认第一个选项,按ENTER键进入下一步。接着在ubuntu的语言选择页面,选择安装语言,并点击“安装Ubuntu”

另外,如果在操作的过程,系统弹窗提示是否进入鼠标和键盘的独占模式,请选择取消,具体如图,如果不小心进入了鼠标和键盘的独占模式,可以按下右Ctrl键来退出独占模式 

 后续步骤直接点击“继续”即可

 

默认所在城市,点击“继续”进入下一步

设置用户名和密码,点击“继续”进入下一步 

来到该界面,需要下载一些组件,所以有点慢,请耐心等待。同时,为了避免出现奇怪的问题,请保持网络畅通。在安装完毕之后,会提示喊重启,按提示进入下一步重启就可。

 

 如果此步出现异常,那么请强行退出,在virtual Box中手动重新启动(或者在重启时等待太长时间,也可这样)

 

重启后,输入密码,就可以进入ubuntu了 (欢迎程序可以跳过)点击鼠标右键,选中“打开终端”进入Shell。(另外,如果系统提示更新,请拒绝更新

首先、如下图所示,点击“安装增强功能”选项安装增强功能 。然后、在该图的中“共享粘贴板”中,将粘贴板共享设置为“双向”,关闭虚拟机,重启生效。最后,在重新启动后,为了获得更好的视觉效果,建议在“视图”中,将视图设置为“无缝模式”。

我们可以使用命令:ip addr show查看主机所有IP ,同时,我们也可以使用ifconfig -a 查看当前主机所有的额IP。只是在ubuntu 20.4中,我需要先使用以下命令安装网络相关工具

sudo apt install net-tools

然后输入ifconfig -a命令查看当前网卡状态。可以看到enpos3网卡与enp0s8网卡, enp0s3网卡是虚拟机网络设置中的网卡1,负责通过主机连接互联网;enp0s8为Host-Only网络,负责虚拟局域网内互通。不同机器的网卡名称可能不同,且 Host-Only 网卡默认为关闭状态。

 SSH配置

为了方便通过SSH协议远程连接ubuntu主机,需要安装SSH服务端,命令如下:

sudo apt install openssh-server -y

如果SSH服务端,,使用ssh无法登录该主机,遇到类似的问题

ssh Connection reset by 192.168.56.103 port 22

重装SSH服务成为唯一的解决方法

#卸载ssh服务

sudo apt remove --purge openssh-server -y

#参数说明

--purge #软件和配置文件也一起卸载#安装ssh服务

 

Windows中Git安装和远程连接

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理件,它本身支持SSH1, SSH2。因此,它有和XShell类似的功能,我们也可以通过它非常方便的连接我们的Ubuntu主机。(虽然Git和XShell部分功能类似,但是Git更简洁,功能更强大。因此,在本实验,主要使用Git进行演示)

Git的安装包,可以通过其官网git-scm.com或者gitforwindows.org进行下载。下载后,一路使用默认安装就可以完成安装了。安装完成后,我们可以通过win菜单“所有应用”→“Git”→“Git Bash”或者鼠标右键弹窗的“显示更多选项”→“Git Bash Here”进入Git的命令行。

我们可以直接使用“ssh master@192.168.56.17”远程连接我们的ubuntu主机 

如果使用ssh进行远程连接的时候,出现了类似的以下错误

no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

那么请使用以下命令进行清理,然后再重试

ssh-keygen -R 192.168.56.27

安装vim软件包

Vim是一个类似于Vi的高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。

(以下操作在Git中执行)在命令行执行该命令来安装vim

sudo apt install vim

开启root用户

ubuntu中,默认没有开启root用户,不过可先通过以下命令来设置root的密码,启动root用户

sudo passwd root

 

启动root用户后,我们可以通过su命令从当前用户切换到root用户 (注意当切换到root用户后,$变成了#.切换到root用户后,就不会再因为权限不足,而使用sudo)

 在SSH中,允许root用户直接登录

对于SSH,编辑 /etc/ssh/sshd_config 文件(在命令行敲出该段命令):

sudo vim /etc/ssh/sshd_config

找到 PermitRootLogin 这一行,(按‘ i ’进入插入模式)并将其修改为:

PermitRootLogin yes

保存(按‘:’并输入qw退出插入模式)再关闭文件,并重新启动

这样就可以远程使用SSH直接进行root用户的登录。

比如,ssh root@192.168.56.200

静态IP配置

我们安装的master主机属于ubuntu 20.04,需要通过以下指令更改配置文件,实现第二网卡enp0s8的静态IP配置:

sudo vim /etc/netplan/01-network-manager-all.yaml

在文件中添加如下信息(格式必须一致):

  ethernets:enp0s8:dhcp4: falseaddresses: [192.168.56.200/24]gateway4: 192.168.56.1

若要改ip,则在addresses那一行进行ip修改 

格式如图所示:

注意1:如果第一次执行vim,会出现vim命令找不到的提示,请执行该命令来安装vim。

sudo apt install vim

注意2:enp0s8需要替换为自己的对应的网卡名称。修改完成后保存文件﹐输入以下指令启动网卡:

sudo netplan apply

至此,master虚拟机的安装完成,slave1和slave2的安装与配置同master一致,可参考master的配置。

同时建议将slave1和slave2这三台主机设置为静态IP:192.168.56.3,192.168.56.4。

即master、slave1和slave2这三台主机的静态IP分别为:192.168.56.200,192.168.56.3,192.168.56.4

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

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

相关文章

【网路通信基础与实践番外二】TCP协议的流量控制和拥塞控制以及二者区别和例题

TCP协议是端对端的协议,因此在数据进行传输的过程受发送方,数据通道,接收方三方状态的影响。我们用水龙头来比喻数据发送方,水管来比喻数据通道,水桶来表示数据接收方。 图(a)表示水桶太小,来不及接受注入…

大数据分析的具体步骤

大数据分析的具体步骤 大数据 java python hadoop 1. 明确分析目的和思路: - 确定分析目标:思考为什么要开展数据分析,要解决什么问题。比如,企业想要分析用户购买行为,以便优化产品推荐策略;政府部门…

超好用的element的el-pagination分页组件二次封装-附源码及讲解

前言:在很多后台管理系统开发时总会有很多分页组件的使用,如果我们每次都用elementui官网的el-pagination去写的话,调整所有分页的样式就会很麻烦,而且页面内容也会很累赘繁琐。 讲解一个我经常使用的二次封装el-pagination组件&…

数据库简单介绍

数据库是现代信息技术中用于存储、管理和检索数据的重要工具。数据库技术的发展经历了多个阶段,从早期的层次模型和网状模型,到关系型数据库的兴起,再到NoSQL和NewSQL的多样化发展。数据库系统已经成为现代信息系统的核心和基础设施。 数据库…

cat用来查看文件内容、合并文件,或者将文件内容输出到终端

cat 是 Unix 和 Linux 系统中的一个命令,它的名称来源于 “concatenate”(连接),主要用来查看文件内容、合并文件,或者将文件内容输出到终端。 常用用法 查看文件内容 cat filename输出 filename 的内容到终端中。 例…

归并排序:递归、非递归实现、文件排序(归并排序实现)

目录 归并排序递归实现 1.归并排序基本思想 2.归并排序单趟思路 3.代码思路步骤 3.1.归并排序实现思路步骤 3.2.总结 3.2.1.数组归并与链表归并的差异 (1)数组归并 (2)链表归并 (3)总结 3.2.2.归并排序的递归实现总结 4.归并排序递归实现代码 5.归并排序递归递归展…

OpenCV视频I/O(15)视频写入类VideoWriter之标识视频编解码器函数fourcc()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将 4 个字符拼接成一个 FourCC 代码。 在 OpenCV 中,fourcc() 函数用于生成 FourCC 代码,这是一种用于标识视频编解码器的…

使用百度文心智能体创建多风格表情包设计助手

文章目录 一、智能定制,个性飞扬二、多元风格,创意无限 百度文心智能体平台为你开启。百度文心智能体平台,创建属于自己的智能体应用。百度文心智能体平台是百度旗下的智能AI平台,集成了先进的自然语言处理技术和人工智能技术&…

全面指南:探索并实施解决Windows系统中“mfc140u.dll丢失”的解决方法

当你的电脑出现mfc140u.dll丢失的问题是什么情况呢?mfc140u.dll文件依赖了什么?mfc140u.dll丢失会导致电脑出现什么情况?今天这篇文章就和大家聊聊mfc140u.dll丢失的解决办法。希望能够有效的帮助你解决这问题。 哪些程序依赖mfc140u.dll文件…

【Spring基础3】- Spring的入门程序

目录 3-1 Spring的下载3-2 Spring的 jar 包3-3 第一个 Spring程序第一步:添加spring context的依赖,pom.xml配置如下第二步:添加junit依赖第三步:定义bean:User第四步:编写spring的配置文件:bea…

(C语言贪吃蛇)4.贪吃蛇地图优化及算法说明

上节代码示例&#xff1a; #include <curses.h>void initNcurse() {initscr();keypad(stdscr,1); }void gamePic() {int hang;int lie;for(hang 0;hang < 20;hang ){if(hang 0){for(lie 0;lie < 20;lie ){printw("--");}printw("\n");for(…

Angular 2 用户输入

Angular 2 用户输入 Angular 2 是一个由 Google 维护的开源前端 web 框架,用于构建单页应用程序(SPA)。它以其高效的双向数据绑定、模块化架构和强大的依赖注入系统而闻名。在 Angular 2 应用程序中,处理用户输入是核心功能之一,因为它允许应用程序响应用户的操作。 Ang…

AI相关的整理

AI相关的整理 初体验记不住机器学习如何部署如何微调 整理AI学习&#xff0c;AI小白&#xff0c;业余爱好。持续更新&#xff0c;谨慎参考&#xff01; 初体验 试了一下本地直接下载安装ollama和open-webui&#xff0c;然后运行指定的模型&#xff0c;跟着文档做&#xff0c;很…

CSP-J 复赛真题 P9749 [CSP-J 2023] 公路

文章目录 前言[CSP-J 2023] 公路题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 示例代码代码解析思考过程总结 总结 前言 在CSP-J 2023的复赛中&#xff0c;出现了一道引人注目的题目——“公路”。这道题目不仅考察了选手们对算法的理解和运用能力&#xff0c…

MFC多媒体定时器实例(源码下载)

用MFC多媒体定时器做一个每1秒钟加一次的计时器&#xff0c;点开始计时按钮开始计时&#xff0c;点关闭计时按钮关闭计时。 1、在库文件Med_timeDlg.h文件中添加代码 class CMed_timeDlg : public CDialog { // Construction public:CMed_timeDlg(CWnd* pParent NULL); // st…

算法 | 位运算(哈希思想)

位运算 &与两个位都为1时&#xff0c;结果才为1&#xff08;有0为0&#xff09;|或两个位都为0时&#xff0c;结果才为0&#xff08;有1为1&#xff09;^异或两个位相同为0&#xff0c;相异为1~取反0变1&#xff0c;1变0<<左移各二进位全部左移若干位&#xff0c;高…

Python自然语言处理之spacy模块介绍、安装与常见操作案例

文章目录 spacy模块介绍安装spacy常见操作案例及代码1. 加载模型并处理文本2. 词性标注3. 命名实体识别4. 依存句法分析5. 可视化&#xff08;在Jupyter Notebook中&#xff09; spacy模块介绍 spacy是一个强大的Python库&#xff0c;用于自然语言处理&#xff08;NLP&#xf…

Docker 命令从入门到入门:从 Windows 到容器的完美类比

Docker 命令与 Windows 操作类比 基本命令类比 Docker 命令Windows 类比docker pull从 Windows Store 或官网下载软件安装包docker push将自己开发的软件上传到 Windows Store 或其他分享平台docker save将已安装的软件打包成压缩文件(如 ZIP)docker load解压缩并导入之前保存…

[MAUI]数据绑定和MVVM:MVVM的属性验证

一、MVVM的属性验证案例 Toolkit.Mvvm框架中的ObservableValidator类,提供了属性验证功能,可以使用我们熟悉的验证特性对属性的值进行验证,并将错误属性提取和反馈给UI层。以下案例实现对UI层的姓名和年龄两个输入框,进行表单提交验证。实现效果如下所示 View<ContentP…

初阶C语言-指针

1.指针是什么&#xff1f; 理解指针的两个要点&#xff1a; 1.指针是内存中一个最小单元的编号&#xff0c;也就是地址 2.口头语中说的指针&#xff0c;通常是指指针变量&#xff0c;是用来存放内存地址的变量 总结&#xff1a;指针就是地址&#xff0c;口语中说的指针通常是指…