如果有同学需要虚拟机中稳定的Linux系统服务,那么建议在VMware下安装Ubuntu Server

这里分享一下我在VMware Player 16下安装配置Ubuntu Server的经验。如有谬误,敬请指正。

一、 创建虚拟机

  1. 下载镜像

    从清华大学https://mirror.tuna.tsinghua.edu.cn/buntu-releases网站,下载Ubuntu Server 21.10镜像(ubuntu-21.10-live-server-amd64.iso),把它存放到(例如D:\iso)目录中。

  2. 创建虚拟机

    启动VMware Player,选择创建新虚拟机,选择安装程序光盘映像文件(iso),点击浏览选择刚下载的镜像文件。

    按照Player的提示进行设置。在设置的最后一页,选择自定义硬件

    尽量不要将虚拟机安装在C盘。

  3. 自定义硬件

    根据实际情况设置内存、CPU核数等。

    点击网络适配器,在右侧的网络连接栏目中,选择自定义:特定虚拟网络,在其下的下拉列表中选择VMnet(8)(NAT模式),然后关闭设置。

    回到前一页面后,点击完成

    此后进入Ubuntu Server安装和配置阶段。

二、安装Ubuntu Server

首先等待安装程序跑一段时间,然后出现设置页面。

提示:在几乎所有的设置页面,都是用上下键移动选项(选中项是绿色背景),按回车结束。 有些页面有多选一()、多选多[]的情况,可以将光标移到选项上,按空格选中它(出现*或X)。

  1. 语言

    选择默认的English

  2. 安装程序升级

    选择升级,然后等待这一步完成。

  3. 键盘布局

    选择默认布局。

  4. 安装类型

    根据实际情况选择全安装还是最小安装。我选择了全安装。

  5. 网络连接

    选择默认的DHCP

    请记住动态IP地址(例如192.168.184.130), 以后再来它来配置静态IP地址。

    插话

    • 一般地,这个IP地址是一个C类地址,其中前三个是子网号,和在Windows中看到的虚拟网卡地址的子网号是一样的。
    • WindowsPowershell中,发出如下命令:
        ipconfig
      

      可以看到类似的信息:

        以太网适配器 VMware Network Adapter VMnet8:
      
            连接特定的 DNS 后缀 . . . . . . . :
            本地链接 IPv6 地址. . . . . . . . :  xxx...
            IPv4 地址 . . . . . . . . . . . . : 192.168.184.1
            子网掩码  . . . . . . . . . . . . : 255.255.255.0
            默认网关. . . . . . . . . . . . . :
      
  6. 代理服务器

    选择默认空白。

  7. 选择镜像网站

    输入:https://mirror.tuna.tsinghua.edu.cn/buntu

  8. 存储配置向导

    选择默认配置。

  9. 存储配置

    选择默认,并在出现的提问中,选择Continue

  10. 用户设置

    在此页面中,输入你的名字,以及服务器的名字(全部小写字母)。

    然后根据需要输入一个账户名(普通权限),并输入两次密码。

  11. SSH安装

    选择安装OpenSSH Server;下面的导入选择No

  12. 选择启动的服务

    选择默认设置。

接下来,就是系统安装了。请等待完成,完成重新启动系统就OK了。

如此安装的服务器没有图形化桌面,只有命令行终端。

三、配置Ubuntu Server

启动Ubuntu Server并登录。

一) 为root账户创建密码

在终端中发出如下命令:

sudo passwd root

先输入登录账户的密码,然后输入两次root的密码。

二) 设置固定IP地址

一般地,虚拟机中UbuntuIP地址是通过DHCP方式动态分配的,因此每次启动后地址可能不一样。为此,最好为虚拟机设置一个固定的IP地址。

从当前用户logout,再以root账户登录。 或者在当前账户下,在终端中发出如下命令:

su - root

进入root账户。

以下操作都是用root账户操作的。

因为Ubuntu Server 21.10版本不低于18.04,因此需按如下方法进行。

  1. 修改/etc/netplan目录下的配置文件

    在终端中发出如下命令:

     cd /etc/netplan
     ll
    

    查看该目录下一个后缀名为yaml的文件,然后用vim打开它,原始内容类似于:

     network:
       ethernets:
         ens33:
           dhcp4: true
     version: 2
    

    解释一下:这个配置文件说明在网卡ens33上启用了IPv4版的DHCP

    注:yaml格式的文件中,同一级别的子项都用相同数量的空格缩进;:后必须有一个空格。

    现将其改为:

     network:
       ethernets:
         ens33:
           dhcp4: no
           addresses: [192.168.184.130/24]
           routes:
             - to: default
               via: 192.168.184.2
           nameservers:
             addresses: [114.114.114.114, 8.8.8.8]
     version: 2
    

    注:路由一节中,原来的gateway4配置已经被废弃,改为示例中的routes。此配置下必须有to和via两个键值对。

  2. 发出如下命令生效:

     netplan apply
    

三) 设置终端字体、分辨率和颜色

  1. 设置字体字号

    终端默认的字体是固定点阵字体,比较小,看起来很费劲。因此有必要将字号改大一些。

    在终端中发出命令:

     dpkg-reconfigure console-setup。
    

    分别选择UTF-8Guess …,再选择合适的字体,例如我选择了Terminus,字号11x22

  2. 设置分辨率

    在终端中发出命令:

     vim /etc/default/grub
    

    其中有一行:GRUB_CMDLINE_LINUX_DEFAULT=""。将其改为:

     GRUB_CMDLINE_LINUX_DEFAULT="vga=0x317"
    

    这表示选择1024x768分辨率。下表是列出了一些参考值。

    颜色数\分辨率 640x480 800x600 1024x768 1280x1024
    256 0x301 0x303 0x305 0x307
    32k 0x310 0x313 0x316 0x319
    64k 0x311 0x314 0x317 0x31A
    16M 0x312 0x315 0x318 0x31B

    修改grub文件时千万要小心,不要输错了,否则你的系统可能无法正常启动!

    千万不要使用vga=ask这个设置,因为它已经被废弃了!

    保存退出vim后,发出如下命令:

     update-grub
    

    下次重启系统后就可以看到效果了。

  3. 设置终端提示符颜色

    1). 在终端中发出命令:

     vim /etc/profile
    

    在文件末尾添加两行:

     export TERMINFO=/usr/share/terminfo
     export TERM=xterm+256color
    

    你可以在/usr/share/terminfo/x目录下查看以x开头的可用的终端信息。

    2). 再发出如下命令:

     cd ~
     vim .bashrc
    

    找到case $TERM这一行,将其下一行(或类似的)

     xterm-color) ...
    

    改为:

     xterm+256color) ...
    

    然后保存退出vim

    3). 接下来发出如下命令:

     vim .bash_profile
    

    在文件末尾添加一行:

     . ~/.profile
    

    然后保存退出vim

    4). 最后发出:

     . .bash_profile
    

    就可以看到效果了。

    如果要为其他用户设置相同效果。那么每个用户都需按上述操作2)-4)进行,编辑自己账户下的.bash_profile、.bashrc。

四) 修改时区和日期时间格式

  1. 修改时区

    系统默认的时区是世界标准时,因此需要修改了当地时区。 在终端中发出如下命令:

     tzselect
    

    然后根据提示做出选择:Asia、China、Beijing、Yes。输入这些选项对应的数。

    最后,发出如下命令:

     cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
  2. 修改日期时间格式为24小时模式

     vim /etc/default/locale
    

    LANG这一行后面添加一行:

     LC_TIME=en_DK.UTF-8
    

    保存退出。系统重启后就可以看到效果了。

四、 远程连接Ubuntu Server

以在Windows中使用Powershell连接为例。假设要连接到服务器中的abc账户。

  1. 生成SSH秘钥

    Powershell中发出如下命令:

     ssh-keygen -t rsa -C "your-email"
    

    在询问保存到哪个文件时,输入你想要的文件名。例如,我输入了ubuntuserver

    此后,上述命令会在~/.ssh目录中生成私钥文件ubuntuserver和公钥文件ubuntuserver.pub

    Windows的~目录在哪里?假设你的登录账号时abc,那么这个目录就是:C:\用户\abc

  2. 远程复制公钥到Server

    Powershell中发出如下命令:

     cd ~/.ssh
     scp ubuntuserver.pub abc@192.168.184.130:~/.ssh
    

    此命令会要求你输入服务器上用户abc的登录密码。

  3. 创建/修改config文件

    记事本或其他文本编辑器打开~/.ssh目录下的config(如果存在)。如果不存在,就打开一个空白文件,最后保存成config就行。

    在文件末尾添加如下几行:

     Host ubuntuserver
         HostName 192.168.184.130
         PreferredAuthentications publickey
         IdentityFile ~/.ssh/ubuntuserver
    
  4. 修改服务器上的authorzied_keys

    用账户abc登录到服务器,发出如下命令:

     cd ~/.ssh
     cat ubuntuserver.pub >> authorized_keys
     rm ubuntuserver.pub
    
  5. 测试连接

    Powershell中发出如下命令:

     ssh abc@ubuntuserver
    

    此后,会看到远程免密登录到服务器的abc账户了。