VirtualBox + CentOS让PC提供云服务

前期准备

安装Git客户端

直接百度git for windows即可找到官网的下载链接,安装好对应系统版本后应在任何地方右键鼠标都会出现git bash here

安装VirtualBox

直接到官网下载最新版本的安装包并安装,在Downloads界面选择windows版本的:

配置VirtualBox

  1. 点击管理->全局设定->常规,设置默认虚拟电脑存储位置,最好把默认的C盘路径改掉,方便自己查找,同时也不消耗系统盘空间。

  2. 创建虚拟机内部虚拟网络,使得 Vbox 内部虚拟机可以通过它,实现虚拟机之间、虚拟机与主机的通讯:

    • 管理->主机网络管理器->创建,创建一块虚拟网卡,并把IPv4地址设为:192.168.100.1/24,这是虚拟内部网络host的默认地址(这一步好像有同学创建不了,据说回退到4.3版本可以,但他直接换Vmware了…)

    • 用cmd输入ipconfig可以查看到刚创建的网卡VirtualBox Host-Only Network #2:

      第一个是本机的网卡,可以通过它看到本机的ip地址,这在之后会有用到。

下载CentOS镜像

直接到官网下载Minimal ISO镜像即可,点击Minimal ISO后进入下载界面选第一个就好了

安装虚拟机

安装第一个虚拟机

进入VirtualBox,点击新建,在名称那里输入centos,就会自动选择类型和版本了:

注意:如果没有64位选择的话,有几种可能:

  1. 电脑不是64位的
  2. 电脑未开启硬件可虚拟化,具体解决方法是进入BIOS把对应可虚拟化的选项设为enable,一般是Intel Virtual Technology
  3. 电脑开启了hyper-v,解决方法是进入控制面板->卸载程序->启用或关闭Windows功能,取消选择hyper-v即可,重启就可以了

选好后继续安装,点击下一步,分配内存依据自己电脑配置,2G差不多了,然后创建虚拟硬盘,选择现在创建虚拟硬盘,文件类型选择VDI,动态分配和固定大小按自己个人喜好选就好,文件位置一般会自动选择在之前设置的默认虚拟电脑位置文件夹下,大小选择分配30G,方便以后扩展,然后就创建好了。

接下来选择刚创建的虚拟机点击设置,在系统那里把启动顺序设为硬盘第一(不然装好系统后再次启动可能又会进入安装系统界面);存储那里点击没有盘片:

然后选择之前下载的Minimal ISO;在网络那里第一块网卡默认NAT,第二块网卡选择Host-Only,接口就是前面创建的虚拟网卡:

设置好之后就可以点击启动来安装系统了,选择Install Centos 7,选择语言后点击继续,

在这个界面要注意两个地方,一个是黄色感叹号那个选项,点击进入后选择安装位置,就选之前分配的虚拟硬盘,然后还要注意点击NETWORK & HOST NAME,进去把网络连接打开,

然后就可以安装了,在这个过程中还可以设置root密码和添加用户。

安装好之后进入系统,首先进行升级OS内核

  1. 获取wget:sudo yum install wget

  2. 配置源163源或者阿里云源

    具体操作为(以163源为例):

    • 备份/etc/yum.repos.d/CentOS-Base.repo(即改名):

      1
      sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    • 进入yum源配置文件:cd /etc/yum.repos.d

    • 下载网易163源:

      1
      sudo wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    • 下载好后把163源设置为默认源:

      1
      sudo mv CentOS7-Base-163.repo CentOS-Base.repo
    • 然后生成缓存:

      1
      2
      yum clean all
      yum makecache
  3. 升级OS内核:sudo yum update

升级内核之后进行下一步,检查网卡配置

  • 输入nmtui,配置第二块网卡地址:

    选择第一项,然后选择第二个网卡的edit:

    IPv4那里点击Show,在下面的Addresses点击Add,配置第二块网卡地址,格式如192.168.100.50/24,

    然后退出nmtui界面。

  • ping主机,如ping 192.168.100.1

第一个虚拟机的操作完成,关闭虚拟机。

安装第二个虚拟机

利用虚拟机复制功能,直接获取新虚拟机:右键之前创建的虚拟机,选择复制,为新虚拟机取名并一定要选择重新初始化所有网卡的 MAC 地址

然后选链接复制,完成。

启动新的虚拟机,配置主机名和第二块网卡

  • 配置主机名要使用sudo nmtui,修改网卡地址操作与之前相同,但地址变为了192.168.100.100/24。改好后回退到nmtui的第一个界面,选择第二项来激活第二个网卡,两个网卡名前面都有*号就表示都已激活。

  • 再回到nmtui的第一个界面选第三项,更改主机名,改完后退出,重启。

  • 重启后需重新激活第二个网卡,在windows上进入git bashping刚才修改的地址,即ping 192.168.100.100

  • 通过ssh来访问该虚拟机。官网下载putty,安装后启动,输入虚拟机第二块网卡的地址,点击open即可连接到虚拟机(windows需启动git bash):经老师提示发现windows安装了git bash(Unix命令行模拟环境)就有ssh客户端了,可以通过git bash来进行ssh连接,例如我的虚拟机地址是192.168.100.4,则ssh连接的命令为

    1
    ssh [用户名]@[虚拟机地址]

    相应操作为:

此时已经差不多完成了,能通过ssh访问到虚拟机就已经搭好私有云环境了,但为了centos更方便使用,继续安装centos桌面

  1. 首先重新配置虚拟机的CPU内存显存,因为使用centos桌面对配置要求更高。先关闭虚拟机,选择对应的虚拟机后点击设置来进行配置,CPU 1~2个,内存2G或4G,显存越大越好,同时勾选启动3D加速

  2. 启动虚拟机,安装桌面sudo yum groupinstall "GNOME Desktop",这个很大,耗费时间比较长,需要耐心等待,如果下载不成功,可能需要更换yum源

  3. 安装好后设置启动目标为桌面,然后重启:

    1
    ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

此时我们已经可以通过图形化界面来使用centos,但因为虚拟机对鼠标的捕获很不友好,导致使用很不方便,而且也不能全屏,那么就需要安装VirtualBox的扩展功能了:

  • 先安装kernel-devel和gcc:sudo yum install -y kernel-devel gcc

  • 点击VirtuaBox的设备->安装增强功能,此时可能会报错:

    这个错误挺常见的,也容易解决:

    弹出后再选择安装增强功能就好了:

    点击Run即可开始安装。

  • 装好之后重启时突然报错:Failed to load selinux policy.然后就一直卡在进度条满的状态,无法进入系统,重启很多次也没用,上网查之后发现是因为/etc/selinux/config配置文件不对,虽然我没有修改这个文件,但还是试了试网上方法:

    1. 首先在启动时选择启动项的界面按e进入grub编辑界面:

    2. 进入grub编辑界面后找到linux16那一行,在最后面的LANG=zh_CN.UTF-8之后空格,加上selinux=0,如上图所示,然后Ctrl + X启动即可进入系统

    3. 进入系统后当然要解决这个问题了,sudo vi /etc/selinux/config,可以看到SELINUX=enforcing,我们要做的是改成disabled,且记SELINUXTYPE=targeted原始配置不用改

  • 解决上个那个错误后重启就发现增强功能已经装好了,鼠标可以自由移动,也可以全屏了。

接下来安装Google Chrome(可选):

  • 直接去官网下载可能会被墙,可以移步国内新浪科技网下载,选择正式版RPM,直接下载

  • 进入下载的安装包所在路径,利用yum来安装sudo yum localinstall google-chrome-stable_current_x86_64.rpm,yum会自动分析依赖,并完成安装

在这里插入一个可能的问题:有了图形化界面后我们就可以很方便地通过设置来把第二块网卡设置自动激活了,避免每次开机都要手动激活的痛苦。在这个过程中我发现了一个问题,貌似系统把我之前设置的第二块网卡的IPv4地址修改了:

现在的地址是192.168.100.4,而之前我是把它设置成了192.168.100.100,而且貌似修改后重启又会变成这个,干脆就使用这个地址吧,在使用ssh访问的时候要注意IP地址的变化

使用远程桌面访问虚拟机

安装扩展包

首先关闭所有虚拟机,然后去VirtualBox官网下载扩展包,在下载界面选择VirtualBox 5.2.18 Oracle VM VirtualBox Extension Pack(扩展包版本要与VBox版本相同):

下载好后点击管理->全局设定->扩展,点击添加新包,找到正确的扩展包并添加

装好扩展包后重启Windows(注意不是重启虚拟机)

设置虚拟机端口

点击对应的虚拟机,点击设置后选择显示,在远程桌面那里启用服务器,然后设置端口号,这里需要注意每台虚拟机的端口号必须不同,因此最好手动修改端口号而不是使用默认。认证方式选择,我使用外部的认证方式无法连接:

使用远程桌面

直接在win10小娜姐姐那里输入远程,就可以启动windows自带的远程桌面连接,在计算机一栏那里输入的地址为本机IP地址:端口号,注意是本机地址,不是虚拟机的地址!!

再点击连接,就成功啦:

部分同学发现在不开启第二块网卡时虚拟机可以ping到192.168.100.1,但开启了第二块网卡之后就不行了,经大佬提示后发现是windows防火墙的问题…关闭之后就好了,不过没有必要,因为已经可以实现远程访问了。

-------------本文结束感谢您的阅读-------------