基于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.rhkb.cn/news/440203.html

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

相关文章

JavaScript-下篇

上篇我们学习了,一些基础语法和函数,现在我们学习下篇,主要包括,对象和事件。而对象又包括,数组Arrays,String字符串,BOM,DOM等 JS对象 Arrays数组 数组是一种特殊的对象,用于存储…

子比主题美化 – 添加天气教程

前言 经常看到很多的网站顶部或者侧边有显示天气状态的小条幅,看着也美观,寻思着也在自己的小站上显示天气。大体的思路是能识别用的ip地址来确认位置然后以代码形式在前台显示出。 经过在百度上搜索一番,发现一个很不错的天气api&#xff…

Java之二叉树的基本操作实现

1. 模拟实现二叉树前,我们要先表示树,首先定义一个内部类,当作二叉树节点 static class TreeNOde{char val;//存放二叉树的值TreeNOde left;//指向左子树的引用TreeNOde right;//指向右子树的引用//构造方法,用于实例化树的节点p…

Luminar财务造假风波:激光雷达龙头的困境与挑战

近日,美国激光雷达上市公司Luminar被爆出财务造假嫌疑,这一消息震惊了整个行业。Luminar,这家曾风光无限的激光雷达公司,最高市值一度达到120亿美元,其年轻的创始人也因此坐拥豪宅豪车无数。然而,如今在市值仅剩5亿美元左右的时候,却被爆出如此丑闻,令人不禁唏嘘。 带…

成都睿明智科技有限公司抖音电商新蓝海的领航者

在当今这个数字化浪潮汹涌的时代,电商行业正以惊人的速度迭代升级,而抖音电商作为新兴势力,更是凭借其庞大的用户基数、精准的算法推荐和高度互动的社区氛围,成为了众多商家竞相追逐的蓝海市场。在这片充满机遇与挑战的海洋中&…

洛谷每日一题(P1205 [USACO1.2] 方块转换 Transformations)矩阵变换

原题目链接: P1205 [USACO1.2] 方块转换 Transformations - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 原题目截图: 思路分析: 这题目还是比较简单,模拟一下旋转变化的过程,然后注意变换的规律就行了。 读取输入…

【移动端】事件基础

一、移动端事件分类 移动端事件主要分为以下几类: 1. 触摸事件(Touch Events) 触摸事件是移动设备特有的事件,用来处理用户通过触摸屏幕进行的操作。主要的触摸事件有: touchstart:手指触摸屏幕时触发。…

我的项目管理生涯

1 前言 从好几年前就想写几篇关于自己职业生涯的文章了,一直由于各种原因没有写成,正好借新的工作机会,尤其是项目管理这段工作经历,计划通过这一二篇文章进行总结和反思一下,以期更顺利的开展相关工作或是自己能更上…

ad.concat()学习

学习1 import anndata as ad, pandas as pd, numpy as np from scipy import sparse a ad.AnnData(Xsparse.csr_matrix(np.array([[0, 1], [2, 3]])),obspd.DataFrame({"group": ["a", "b"]}, index["s1", "s2"]),varpd.D…

import torch报错问题:OSError: [WinError 126] 找不到指定的模块。

今天在python中导入import torch时&#xff0c;发生了报错。 import torch File "D:\python\Lib\site-packages\torch\__init__.py", line 148, in <module>raise err OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\python\Lib\site-pac…

【PACS源码】C#.net医学影像管理系统源码,支持CT、MR、CR、DR、ECT、DSA、X光机、超声、内镜、病理等多种设备。

PACS医学影像管理与传输系统软件可对医学仪器输出的视频信号进行接收、处理、存储、报告输出、管理、查询等&#xff0c;并支持网络&#xff0c;实现资源共享。为医院对病人信息资料进行数字化、科学化、网络化管理提供了必要的工具。 基于DICOM标准的PACS医学影像管理系统&am…

前端性能优化 面试如何完美回答

前言 性能优化是目前在面试中被问到非常多的问题&#xff0c;主要就是通过各种算和技术来提高页和应用的速度和用户体前端性能优化的问题并不好回答 在回答的时候干万不要掉进一个误区&#xff0c;认为性能优化只是几个技术点而已&#xff0c;事实上性能优化涉及到的是多方面的…

【c++】string类 (一)

简介 由于c的历史包袱&#xff0c;c要兼容c语言&#xff0c;c的字符串要兼容c语言&#xff0c;在 C 中&#xff0c;字符串通常使用两种主要的方式来表示&#xff1a; C风格字符串&#xff08;C-style strings&#xff09;&#xff1a; 依然是以 \0 结尾的字符数组。这种表示方…

掌握嵌套子查询:复杂 SQL 中 * 列的准确表列关系

在日常开发中&#xff0c;我们常常需要对复杂的 SQL 进行数据血缘分析。 本文重点讨论在具有 * 列的嵌套子查询中建立表和列之间正确关系的挑战。使用 Teradata SQL 代码示例来说明该过程。 本文聚焦于一个别名为 SUBSCRIBER_ 的子查询及其派生的列&#xff0c;这些列在外层查…

融媒体服务中PBO进行多重采样抗锯齿(MSAA)

如果不理解pbo 那先去了解概念&#xff0c;在此不再解释&#xff0c;这是我为了做融合服务器viewpointserver做的一部分工作&#xff0c;融合服务器的功能是将三维和流媒体&#xff0c;AI融合在一起&#xff0c;viewpointserver会直接读取三维工程的文件&#xff0c;同时融合rt…

英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)

英语词汇小程序 目录 基于java的四六级词汇小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&a…

初始项目托管到gitee教程,开箱即用

0.本地仓库与远程仓库关联&#xff08;需先在gitee创建仓库&#xff09; ①打开powershell生成ssh key ssh-keygen -t ed25519 -C "Gitee SSH Key"-t key 类型-C 注释 生成成功如下&#xff0c;并按下三次回车 ②查看公私钥文件 ls ~/.ssh/输出&#xff1a; id_…

vulnhub-Web Developer 1靶机

vulnhub&#xff1a;Web Developer: 1 ~ VulnHub 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.114.129&#xff0c;扫描端口 有网站服务&#xff0c;访问 没什么东西&#xff0c;扫目录 真不少&#xff0c;访问一下&#xff0c;也只是一些普通的Wordpr…

【IEEE PDF eXpress】格式不对

目录 一、问题二、解决方法 一、问题 word的文档&#xff0c;用IEEE PDF eXpress网站生成pdf后&#xff0c;提交论文出现错误&#xff1a; Document validation failed due to the following errors: Content exceeds IEEE template margins for its format (Page 1:Bottom).…

我对软件工程的理解

1 引言 从事软件行业这么年&#xff0c;写了10年代码&#xff0c;又从事了多年的项目产品方面的工作&#xff0c;一些每天用到的软件工程的方法&#xff0c;虽然天天都在用但一些概念总感觉似是而非&#xff0c;正好借假期的时间&#xff0c;好好整理下&#xff0c;以供自己或…