Skip to content

Latest commit

 

History

History
244 lines (154 loc) · 24.1 KB

File metadata and controls

244 lines (154 loc) · 24.1 KB

一、Linux 简介

一个操作系统 ( 操作系统)是一个运行在你的电脑上的特殊软件,它使得启动和运行微软 Word 和 Excel 等程序成为可能。除此之外,它还为您处理计算机的输入和输出,并提供文件系统和硬件控制。你可能已经知道的操作系统的例子有 Windows、macOS、iOS 或 Android。

在本章中,我们将涵盖以下主题:

  • Linux 系统概述
  • 虚拟化
  • 安装 VirtualBox 和 CentOS
  • 使用 VirtualBox
  • 通过 SSH 连接虚拟机

Linux 系统概述

Linux 并不是一个特定的、完全工作的操作系统的名称,它只是实现了一个操作系统必不可少的内核,也就是内核。大多数类型的 Linux 操作系统不需要花费任何费用,而是提供数千个程序和软件来完全免费使用。这些程序中的大多数也是开源的,这意味着你可以查看程序是如何创建的确切蓝图,并且它可以被任何人更改。Linux 非常流行并且被大量使用的一个非常重要的领域是管理许多网络服务。这些程序在您的 Linux 服务器的后台运行,持续等待外部事件以某种动作或信息进行响应。例子是流行的互联网服务,如向用户展示网站的网络服务器;电子邮件通信的主要服务器;以及存储和传递任何类型数据的数据库服务器。如前所述,Linux 只是内核部分的名称,并不是一个完整的工作 OS。为了使它完整,你需要把它和各种程序捆绑在一起,这就是所谓的分布

如今,人们可以在数量惊人的不同 Linux 发行版之间进行选择,这些发行版都是为特殊目的而设计的,并且各有利弊。它们之间的主要区别是选择的软件和 Linux 内核捆绑在一起。最重要的 Linux 发行家族是基于红帽和 Debian 的 Linux 发行版。CentOS 是目前最重要的免费红帽 Linux 服务器发行版之一。这是一个非常稳定、安全和可靠的操作系统,这就是为什么它经常被用于在企业环境中运行非常关键的网络服务。此外,很高兴知道这个操作系统的开发非常强大,并且更新经过了很好的选择和适当的测试。本书第一章是关于安装 Linux 的;在这里,我们将从向您介绍虚拟化的概念开始。然后,我们将使用名为 VirtualBox 的免费虚拟化软件创建一个新的 CentOS 7 虚拟机 ( VM )。

虚拟化

在本节中,我们将向您概述虚拟化的概念。我们还将向您展示如何使用 VirtualBox,然后向您展示如何在 VirtualBox 中安装您的第一台 CentOS 7 虚拟机。这是一个非常热门的话题,目前的核心 It 技能是虚拟化。

简单地说,它是一种在同一台计算机上运行与主操作系统并行的独立操作系统的技术。例如,如果您当前在一台 Windows 计算机上工作,您可以在桌面上并行运行另一个操作系统,如 Linux 或 macOS,以运行一个简单的 Windows 应用。现代虚拟化软件甚至没有限制您只能运行一个并行操作系统,但您可以并行运行多个系统。限制仅由您自己的计算机硬件定义。虚拟化技术在现代信息技术中的应用层出不穷,你会发现它们无处不在。优势可以从改变信息技术基础设施范例到撤销对操作系统的更改,这对初学者来说非常理想。

在云计算或现代数据中心中,强大的虚拟化服务器集群同时运行许多不同的操作系统,而不是使用专用的服务器硬件。如果你想在虚拟化时代之前使用 Linux,你需要访问专用的物理计算机。此外,大多数初学者在开始使用 Linux 时,会多次搞砸他们的新 Linux 安装。通常,这样的系统改变可能很难重新启动,唯一有效和有用的结果是在卡住时重新安装一个完整的系统。虚拟化解决了所有这些问题。由于其强大的功能,如克隆、拍摄快照或创建图像,我们将使用它来方便地处理整个章节中的所有示例,这也消除了对破坏某些东西的恐惧。目前,在商业和开源领域,有大量不同的虚拟化产品可供桌面和非图形服务器环境选择。

在核心层面上,所有这些不同的虚拟化产品都有相同的基本特性和通用定义,我们需要先弄清楚这些特性和定义,然后才能深入研究。当我们谈论与物理机操作系统并行运行的操作系统时,从现在起,我们将称它们为虚拟机或虚拟机。在同样的背景下,我们运行运行虚拟化软件的物理机的主操作系统称为主机系统虚拟机管理程序。在该主机上运行的虚拟机称为来宾系统来宾。复制和克隆是虚拟化最重要的功能之一。这可以为您节省宝贵的时间,例如,如果您需要另一台相同的机器或使您的工作更加便携。只需将图像复制到您的笔记本电脑或其他数据中心,您就完成了。虚拟机的可移植副本也称为映像。另一个很棒的功能是为您的虚拟机拍摄快照。拍摄这样的快照只需几秒钟,但会在任何给定时间点保存虚拟机的完整和当前状态。如果您想要保留您的虚拟机的给定版本,这非常有用,您以后可能会想要恢复到该版本。不同虚拟化产品的另一个共同点是支持的网络模式类型。

虚拟机可用于连接网络的不同模式如下:

  • NAT :您的来宾虚拟机的所有传入和传出网络流量都将通过主机网络适配器。这意味着虚拟机在我们当前所在的网络中不可见,我们只看到主机的 MAC 和 IP 地址。
  • 桥接:这种网络模式意味着虚拟机暴露自己,连接到周围的物理网络,就好像它是一台拥有自己唯一 MAC 地址的普通物理机一样。该网络中的 DHCP 服务器将为机器提供不同于主机的 IP 地址。
  • 仅主机:这意味着虚拟机只能与其主机通信,并且对其可见,而不能对网络的其他部分可见。
  • 特定虚拟网络:这是一个非常棒的功能,您可以定义独立于周围物理网络的私有和隔离子网,然后将虚拟机与之相关联。这非常有用,因为只有虚拟机才能看到位于同一虚拟网络中的其他机器并与之对话。

安装 VirtualBox 和 CentOS

在本节中,我们将向您展示如何在创建新的 CentOS 7 虚拟机之前安装名为 VirtualBox 的免费虚拟化软件。我们还将完成非常重要的安装后任务,这将需要在接下来的章节中执行。VirtualBox 的安装非常简单。每个主要的操作系统都有可执行的安装程序。以下是安装 VirtualBox 的步骤:

  1. 打开你最喜欢的网络浏览器,导航到https://www.virtualbox.org/。现在,点击主页上清晰可见的下载按钮。
  2. 选择您选择的目标主机操作系统。在我们的示例中,我们将选择窗口。
  3. 单击 Windows 主机开始下载。此外,不要忘记下载 VirtualBox 扩展包,您可以在同一个下载页面上找到它。

这是一个包,将提供更好的 USB 支持,以及其他有用的功能。下载完成后,打开下载的安装程序运行它,并使用默认设置安装它。

现在,让我们在 VirtualBox 中创建新的 CentOS 7 虚拟机。为此,我们首先需要从 CentOS 官方网站(https://www.centos.org/)下载 CentOS 7 Minimal ISO 文件版本 1611。这仅包含运行非图形 Linux 服务器所需的最重要的软件包,这正是我们想要的。

以下是创建新的 CentOS 7 虚拟机的步骤:

  1. 打开网络浏览器,导航至https://www.centos.org/。导航到立即获取中心|最小国际标准化组织。

  2. 在下一个屏幕上,选择靠近您当前位置的下载网址,以加快下载速度。我目前位于德国,所以如果你在其他地方,我的实际下载网址很可能会与你的不同。

  3. 等到下载完成。

On a modern and fast computer, you can install a fully working operating system such as CentOS 7 inside VirtualBox within a few minutes.

  1. 在您的系统上运行 VirtualBox。现在,让我们重复以下步骤来安装我们的第一个 CentOS 7 虚拟机:
    1. 单击新建按钮创建新虚拟机。如果您将虚拟机名称键入为CentOS 7,VirtualBox 将会正确识别另外两个字段,类型和版本,为 Linux 和红帽(64 位)。
    2. 单击“下一步”按钮继续下一步。
    3. 现在,选择虚拟机必须有多少内存或内存。如果您不希望主机系统出现任何性能问题,请留在“内存大小”窗口中显示给您的绿色区域。
    4. 对于基本的无头服务器,这意味着非图形服务器,建议至少使用 2 GB 的内存。别担心,您也可以稍后更改此设置。
    5. 单击下一步按钮,在下一个屏幕上保持默认设置不变。现在,点击创建。
    6. 选择虚拟数据接口选项,然后单击下一步。现在,在这个屏幕上,保持动态分配选项。点击下一步。
    7. 在下一个屏幕上,将虚拟硬盘的大小加倍到16 GB,因为8 GB对我们的工作来说太小了。
    8. 最后,单击创建按钮创建一个新的空虚拟机,准备安装 CentOS 7。

现在,让我们在空虚拟机中安装 CentOS 7:

  1. 选择我们的 CentOS 7 服务器虚拟机,然后单击绿色的开始按钮启动它。在这里,我们下载的 CentOS 7 ISO 文件将被 VirtualBox 用作虚拟光盘,这是它可以引导或启动的地方。

  2. 为此,单击小文件夹符号,在文件浏览器中导航到您下载的 CentOS 7 最小 ISO 文件,然后单击开始按钮。

  3. 现在,您的虚拟机将向您呈现一个基于文本的开始菜单,我们将使用键盘上的向上箭头键选择安装 CentOS Linux 7,然后按进入启动安装程序。

  4. 等待一段时间后,您将看到第一个图形安装屏幕。

Before we click or type something into the VM window for the first time, we need to know how we can switch back to our host system once we are in. If you click once on the guest window, a popup will show up telling you how you can switch controls back and forth.

  1. 选择安装程序语言。在我们的例子中,我们使用了默认的英语语言。

This is not the language of your CentOS 7 installation. We will set this type of information on the next screen.

  1. 点击继续。现在,我们在主安装屏幕上,我们可以自定义我们的安装。您需要等到所有项目都已加载。

Here, all the items which are marked with an exclamation mark need to be done before we can proceed with the installation, but you can also do optional settings here like setting your location information.

  1. 接下来,我们需要设置安装目的地。单击安装目的地。由于我们使用的是空虚拟机,我们将使用完整的硬盘进行安装,这是默认设置,因此只需单击屏幕左上角的完成即可。
  2. 在我们开始实际安装之前,让我们在这里快速启用我们的以太网卡,这样我们就不必使用命令行进行安装。如果您是代理人,您也可以在此菜单中添加此类信息。如果您准备好了,请单击完成。
  3. 现在,让我们点击开始安装。在安装过程中,为管理员或根帐户设置一个强而安全的密码,该帐户拥有系统的所有权限和控制权。设置强密码后,单击完成。
  4. 现在,在同一个屏幕上,您可以为您的日常工作创建一个普通用户帐户。

The first rule of any secure Linux system is never work with the root user unless you need to.

  1. 创建新用户帐户后,单击完成。
  2. 现在等到安装完成。安装完成后,单击重新启动按钮重新启动系统。
  3. 按下开始屏幕上的回车键将始终选择并使用最新的内核。
  4. 现在,等到您在这个窗口中获得一个登录屏幕,也称为我们的服务终端
  5. 使用您在安装过程中设置的root用户和密码登录。
  6. 然后,在终端中输入以下命令,并按下进入键:
# yum update -y    

此命令将安装 CentOS 7 安装可用的所有最新软件更新,因为安装程序介质不包含这些更新。

If you get a new error while this command is running, something must be wrong with your internet connection, so troubleshoot internet connectivity on your host system.

如果称为内核的 CentOS 7 系统的核心已经更新,我们需要重新启动系统。所以,在终端中输入reboot,然后按进入。再次重启后,按进入键,等待登录屏幕加载,再次登录。

接下来,我们键入另外两个命令,这将清空我们所有的可用空间,以便我们可以创建一个较小的系统备份映像。现在,在终端中键入以下具有管理/根访问权限的命令:

dd if=/dev/zero of=/dd.img; rm -f /dd.img    

现在,按下进入键。该命令将通过创建一个只包含零的大文件来覆盖 Linux 文件系统的所有可用空间,直到磁盘满为止。这需要一些时间,所以你需要耐心。如果这个命令输出一些文本,那么它已经完成了。您可以忽略错误输出,因为这是预期的行为。

最后,为了设置 SSH 端口转发,我们需要记下虚拟机连接的网络适配器的实际 IP 地址。运行以下命令:

ip addr list   

进入,在输出行输入 IP 地址,即inet后面的值。在我们的例子中,它是10.0.2.15

要关闭虚拟机,请使用以下命令,然后按下进入键:

shutdown -h

使用 VirtualBox

在本节中,我们将学习正确使用 VirtualBox 所需的最重要的步骤。请注意,这里讨论的大多数设置都可以直接从 VirtualBox 转换到任何其他桌面虚拟化软件,如 KVM、VMware、Workstation 或 Parallels Desktop。

让我们按照以下步骤导出虚拟机映像:

  1. 将光标定位到 Oracle 虚拟机虚拟箱管理器屏幕的左上角。在这里,单击文件菜单,并在下拉菜单中选择导出设备....

  2. 在同一个下拉菜单中,您会发现另一个名为“导入设备”的菜单项...,允许您在创建图像文件后导入该文件。

  3. 现在,单击导出设备...开始这个过程。

  4. 在导出虚拟设备屏幕中,选择要为其创建映像的虚拟机,然后单击下一步。

  5. 现在,在存储设置屏幕上,保持默认设置不变,然后再次单击下一步。

  6. 同样,在设备设置屏幕上,我们不想更改任何内容,因此单击导出按钮开始该过程。这需要一些时间,所以你需要耐心。

  7. 导出过程完成后,让我们检查结果文件是什么样子。

  8. 转到 VirtualBox 导出您的文件的位置(通常,您会在Documents文件夹中找到它),然后右键单击并选择属性...查看文件属性的选项:

如您所见,导出的虚拟机大小超过 600 MB,这非常棒。现在可以将此映像文件复制到备份位置,或者传输到另一台机器或数据中心来运行它。在使用我们的虚拟机之前,我们应该做的下一件事是在安装后立即从当前状态制作快照,这样我们就可以随时恢复到现状。

按照以下步骤创建虚拟机的快照:

  1. 选择适当的虚拟机,然后单击标记虚拟机的快照选项。给它一个合适的名字和可选的描述。
  2. 我们接下来要做的是创建虚拟机的精确副本,这样我们就有了多个 CentOS 7 服务器。为此,右键单击虚拟机并选择克隆...选项。给它一个合适的名称,并标记名为重新初始化所有网卡的媒体访问控制地址的选项,这样它将被视为我们网络中唯一的机器。
  3. 在克隆类型窗口中,选择完整克隆,然后单击下一步继续。现在,单击克隆按钮,同时保持默认选项处于选中状态。
  4. 重复前面的步骤,创建另一个完全克隆的虚拟机。

现在,让我们演示一下使用快照的强大功能。在做有风险的事情之前,应该先拍一张快照。例如,启动我们的 CentOS 7 虚拟机之一并登录到系统。现在,让我们想象一下我们想要在/boot目录下工作,Linux 内核驻留在这个目录下。这是一个关键目录,因此最好在继续之前创建当前虚拟机状态的快照:

在前面的截图中,你可以看到我犯了一个严重的错误。我完全删除了整个内核目录,所以目录现在是空的。如果我现在重启系统会发生什么?让我们看看:

正如你在前面的截图中看到的,没有任何内核我无法启动,系统现在完全没有响应,这很难修复。这个问题最好的解决方案是什么?恢复到上次快照的状态。

执行以下步骤将虚拟机状态恢复到以前的快照:

  1. 首先关闭虚拟机。现在,选择您选择的快照,然后单击恢复按钮。这将询问您是否要创建当前状态的快照。如果我们不想这样做,那么我们点击恢复按钮,如下图所示:

  1. 现在,您可以启动虚拟机了。从下面的截图可以看到,我们正要执行delete命令:

  1. 如果我们再次启动机器,所有的问题都消失了,我们回到了删除内核文件之前的位置。建议经常使用快照功能,因为它可以节省您宝贵的时间。

  2. 最后,如果需要,我们可以轻松调整虚拟机的硬件参数,如下图所示:

Before making any hardware changes, ensure that you shut down the VM and then proceed.

您只能在机器的一部分上执行此操作。选择您选择的虚拟机,单击设置,然后单击系统,您可以在其中调整内存。另外,您可以在这里调整您的虚拟流程。单击显示以更改视频内存设置。在“存储”下,您可以附加虚拟硬盘或创建新硬盘。在“网络”下,您可以为虚拟机创建新的网络适配器,并在不同的网络模式之间进行选择。在通用串行总线下,选择通用串行总线 2.0 (EHCI)控制器,以便我们可以根据需要将物理通用串行总线设备正确连接到虚拟机。

通过 SSH 连接虚拟机

通过 VirtualBox 用户界面使用终端窗口来使用新的 Linux 操作系统将使您入门,并可用于配置新服务器的最基本设置。一种更方便、更高效、更专业的访问服务器命令行的方法是使用终端模拟器程序和 SSH。终端仿真器是在操作系统的独立窗口中运行在 VirtualBox 之外的外部程序。它可以像您的服务器的主黑白终端一样使用:

它有很多方便的功能,比如从你的操作系统窗口轻松复制粘贴到剪贴板,自定义字体大小和颜色。此外,它使用选项卡以获得更好的导航,但是如何从服务器与这样的终端仿真器通信呢?这是使用客户机-服务器连接完成的。主机上运行的终端模拟器将被拒绝;我们将连接到 CentOS 7 服务器,在其上执行命令。这样的连接可以使用 SSH 来完成。这是一个远程访问和使用 Linux 服务器的系统。它使用强加密来实现安全连接。由于 SSH 是任何 Linux 服务器上最基本的通信核心服务之一,它已经在 CentOS 7 上安装并启用。我们所需要做的就是在我们的终端模拟器程序中运行一个 SSH 客户端,它可以与在 Linux 和 macOS 上运行 SSH 服务的任何服务器、一个终端模拟器程序和一个开源软件进行连接和通信,因为 stage 客户端已经默认安装并准备好使用。

在 Windows 上,您需要安装程序 PuTTY,它不仅包含 SSH 客户端程序,而且是一个完全可操作的终端仿真器。在我们能够访问 CentOS 7 SSH 服务之前,我们需要使其正确的网络地址对运行终端仿真器的主机系统可用。用于客户端和服务器之间通信的正确网络连接总是由一个 IP 地址或域名以及一个特定的端口号组成。域名或 IP 就像一个门牌号,而端口号就像那栋房子里的确切公寓号。我们始终需要这两个值来正确交付网络包。默认情况下,任何来宾虚拟机的端口对外部主机系统都不可用,因此我们首先需要使用名为端口转发的功能来创建主机和来宾之间的链接。默认情况下,SSH 在端口22上运行,但是这个低端口号不能被非管理员用户或路由用户用于转发。由于我们以普通用户的身份运行 VirtualBox,我们需要将端口22转发到高于1024的用户端口。

在我们的例子中,我们使用端口2222。为此,请执行以下步骤:

  1. 选择您选择的虚拟机,并导航到设置选项。单击网络选项卡。
  2. 探索高级选项。现在,单击端口转发按钮创建新的端口转发规则。
  3. 在端口转发规则窗口中,单击添加新端口转发规则按钮。现在,使用127.0.0.1 IP 作为主机 IP 部分,它是本地主机的 IP,然后是主机端口2222。对于访客 IP 部分,键入10.0.2.15和访客端口22,如下图所示:

  1. 单击确定创建此规则。
  2. 对我们之前克隆的另外两个 CentOS 7 虚拟机重复同样的操作。确保使用不同的主机端口,以便我们可以为每台主机创建不同的网络端点连接。
  3. 第一个 CentOS 7 虚拟机服务器现在可以使用带端口2222的 IP 127.0.0.1访问,第二个在端口2223,第三个在端口2224访问。现在,启动您的所有三个 CentOS 7 虚拟机。
  4. 打开你最喜欢的终端模拟器,例如,xterm,GNOME 终端,或者(在我的例子中)Xfce4 终端。
  5. 要使用终端模拟器登录到您的第一台 CentOS 7 服务器,请使用根凭据。在“终端”窗口中键入以下命令:
ssh -p space 2222 root@127.0.0.1\.     
  1. 按下进入键。该命令将您的本地 SSH 客户端连接到运行在端口2222上的 IP 地址127.0.0.1的 SSH 服务器,该服务器被重定向到端口22上您的虚拟机的网络地址10.0.2.15

  2. 出现提示时,如果是第一次登录服务器,在终端中输入yes

  3. 现在,输入您在安装过程中设置的根用户的凭据。

  4. 在这里,我们现在可以像在真实的终端屏幕上一样工作和键入命令。我们还可以使用另外两个端口登录另外两个 CentOS 7 虚拟机。

  5. 要退出 SSH 会话,输入exit并按进入

  6. 在 Windows 系统上,您可以使用名为 PuTTY 的免费程序来执行完全相同的操作。

  7. 只需打开 PuTTY 图形用户界面,输入 SSH 服务器的 IP 地址127.0.0.1,使用端口2222进行连接。现在,使用根帐户访问虚拟机。

  8. 设置端口转发后,最简单的方法是使用 Mac 或 Linux 上提供的免费 SCP 程序。在 Windows 上,你需要下载 PSCP。

  9. 要使用当前目录中的根用户将名为/etc/passwd的文件从 CentOS 7 VM guest 下载到主机,请键入以下命令:

scp -P 2222 root@127.0.0.1:/etc/passwd .    
  1. 当被询问时,输入你的根密码。现在我们可以在本地查看该文件:

  1. 反过来上传一个名为my-local-file的本地文件,里面填充了一些随机数据到服务器,然后输入scp -P 2222 my-local-file root@127.0.0.1:~
  2. 进入,输入你的 root 密码。文件现在已经上传到服务器的/home文件夹中,该文件夹由~指定。

摘要

在本章中,我们已经介绍了 Linux 和 VirtualBox 的概念。我们从了解操作系统的工作原理开始,并朝着虚拟化的方向发展。接下来,我们介绍了 VirtualBox 和 CentOS 的安装。然后,我们学习了如何使用 VirtualBox 并使用 SSH 连接它。

在下一章中,我们将了解命令行的工作原理。