Bootstrap

VMware Workstation Pro 17.5.2 配置 Ubuntu Server 24.04 LTS 教程,MobaXterm的配置,克隆虚拟机后的工作

准备工作(两个安装包):

下载 VMware Workstation Pro 17.5.2

VMware Workstation Pro:现已免费供个人使用 - VMware Workstation Zealot

官网下载地址(需登录):

ProductFiles - Support Portal - Broadcom support portal

VMware Workstation Pro for Personal Use (For Windows)
Release 17.5.2
Release Level Info 520448

File NameLast UpdatedSHA2MD5

VMware Workstation Pro for Windows

VMware-workstation-full-17.5.2-23775571.exe(618.26 MB)

Build Number: 23775571

May 10, 2024 11.06AM2c3a40993a450dc9a059563d07664fc0fb85ae398a57d22b1b4bf0e602417bf7c0a0353c1dade2089b55ce04ca942964

网上找到的其他下载地址,嫌麻烦可用:

Download VMware Workstation Pro (Latest Version Installer) (winningpc.com)

下载 Ubuntu Server 24.04 LTS

官网下载:

获取Ubuntu服务器版 | Ubuntu

其他架构:

获取Ubuntu服务器版 | Ubuntu

直达:

https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso

其他镜像下载:

Index of /ubuntu-releases/24.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

教程

检查网络

在教程开始之前,先检查网络,查看物理机上的dns服务器配置,

更改成以下,我连的是wifi,有线网络同理:

查看虚拟网络VMnet8NAT设置中的子网IP、子网掩码、网关IP,后面需要用到:

此时为了保证没有问题,可以关闭VMware重新打开该软件

自定义虚拟机配置

点击浏览选择你的镜像

在下一步前,到官网下载Ubuntu桌面系统 | Ubuntu看个说明:

桌面版镜像大小比服务器版多3点多G,我用的是服务器版本,从上面选的镜像也能看出来,

为了节省磁盘容量,下面我就选22G,本人把它作为本地测试机用的,不够用以后还可以扩容:

到这里可以看到刚才的配置:

取消勾选,点击完成,可以在这里备注虚拟机描述

点击编辑虚拟机设置,然后如下操作,确定(这是为了虚拟机在显示器的屏占比更大,易看):

安装 Ubuntu Server 24.04 LTS

确定后,点击开启此虚拟机,这一步当然是第一个

下一步选择English:

下一步,美式键盘布局和中式键盘布局一样,为了更广泛的适配性,选美式,也就是默认选项:

选择最小化安装:

网络配置

默认为DHCP自动获取IP地址,这里设置为静态IP,这样,在我们重启系统后,远程访问虚拟机的IP地址也不会变

Save后,Done

save后可以看到此时的静态IP信息

备注:DNS服务器用于域名解析,如果你的虚拟机需要访问Internet上的域名,那么正确配置DNS服务器以确保其能正常解析域名,并避免不必要的查询和延迟。使用与物理网络相同的DNS服务器方便我们在物理网络上验证该域名能否在该DNS服务器上正常解析并访问。如果你使用到了IPv6,配置的基本的原则和逻辑是相似的。

代理配置

这一步不作自定义配置代理,Done

Ubuntu 镜像源配置

下一步这里能正常访问默认的Ubuntu镜像源的域名并返回结果:

这里建议修改为阿里云的Ubuntu镜像:

https://mirrors.aliyun.com/ubuntu/

接下来是引导式存储布局配置,默认即可,done

磁盘分区向导

默认即可,这里为自动分区:

Continue,保存分区方案:

Ubuntu 服务器名和用户配置

升级到 ubuntu pro

这里跳过,Continue

安装 SSH 服务器

选中Install OpenSSH server,安装此服务包可远程访问该服务器,直接Done

选择Snap服务软件包(可选)

我这里不选,Done

将开始安装系统

 安装结束后,选择Reboot Now重启

重启时出现该错误,这是由于启动虚拟机时加载安装镜像导致的,它这里建议您移除安装介质,然后按压ENTER键:

单击鼠标右键选择设置可以查看此虚拟机当前的设备状态

然后取消勾选启动时连接

安装完成

点击屏幕右下方"我已完成安装”按钮,告知VMware该系统已完成安装。

这里可以先做下面的终端工具MobaXterm的安装、配置以实现远程连接,但对本人来说,多敲命令是加强记忆,作为一名开发人员敲linux命令的机会是越来越少,先安装这个可以实现粘贴复制下面的命令:

用户登录

 root密码设置

Ubuntu server 其他配置

查看我们刚才的网络配置

ip route
sudo cat /etc/netplan/50-cloud-init.yaml

如果你需要修改 DNS 服务器地址或更改其他网络配置,在修改完文件保存后(当然你需要安装一个命令行文本编辑器),然后可以使用以下命令来应用配置:

sudo netplan apply

移除Snap及其包并防其被重装

查看所有已安装的Snap包列表:(这里没有安装过

切换到root用户

以下是在root下操作的,否则应在命令前加上sudo

这里尚未安装过,如果有,可用以下命令逐一删除这些Snap包:

snap remove <package_name>

停止、禁用、屏蔽、卸载Snapd服务:

# 1. 停止 snapd.socket
systemctl stop snapd.socket

# 2. 停止 snapd 服务
systemctl stop snapd

# 3. 停止 snapd.seeded.service (如果存在)
systemctl stop snapd.seeded.service

# 4. 禁用 snapd.socket
systemctl disable snapd.socket

# 5. 禁用 snapd 服务
systemctl disable snapd

# 6. 禁用 snapd.seeded.service
systemctl disable snapd.seeded.service

# 7. 屏蔽 snapd.socket
systemctl mask snapd.socket

# 8. 屏蔽 snapd 服务
systemctl mask snapd

# 9. 屏蔽 snapd.seeded.service
systemctl mask snapd.seeded.service

# 检查状态
systemctl status snapd.socket
systemctl status snapd
systemctl status snapd.seeded.service

执行效果:

删除snapd包及其配置文件

apt purge snapd

删除因卸载snapd而不再需要的依赖包

apt autoremove

snapd标记为被禁止安装

apt-mark hold snapd

创建一个APT Pinning文件,将snapd的优先级设置为-1,确保它不会被安装。

sh -c 'printf "Package: snapd\nPin: release a=*\nPin-Priority: -1\n" > /etc/apt/preferences.d/nosnap.pref'

执行完这两个命令之后,检查hold状态和pinning设置

  • Installed: (none): 表示 snapd 没有安装。
  • Candidate: (none): 表示没有候选版本可以安装(因为所有版本的优先级都被设置为 -1)。
  • Version table:
    • 2.62+24.04build1 -1: 表示该版本的优先级被设置为 -1,不会被安装。
    • 500 https://mirrors.aliyun.com/ubuntu noble/main amd64 Packages: 表示这个版本存在于指定的镜像源中。

双重保险,防止snapd被意外地重新安装

安装 Vim 文本编辑器

其他软件安装和查看也是类似

在许多现代 Linux 发行版中,vim 常常被预装并设置为默认的文本编辑器,或者以 vi 的名义存在(实际上是 vim 的一个符号链接)

更新本地的包索引列表

apt update

安装 vim 编辑器

apt install vim

显示 Vim 的版本信息

vim --version | grep "VIM -"

重新安装Vim命令

apt update
apt --reinstall install vim

检查软件包状态,如果Vim的状态显示为 ii,表示已安装且可用

dpkg -l | grep vim

查看Vim的版本信息

vim --version | grep "VIM -"

查看Vim可执行文件的路径

which vim

查看在系统中安装或更新Vim的历史记录

cat /var/log/apt/history.log | grep vim

执行效果:

清除已下载的包文件缓存

apt clean

apt相关的一些其他常用命令,上面出现过的不再展示

# 搜索包含指定关键字的软件包
apt search package_name

# 展示指定软件包的详细信息
apt show package_name

# 升级所有已安装的软件包到最新版本
apt upgrade

# 尝试修复破损的依赖关系
apt --fix-broken install

# 删除指定的包,但保留配置文件
apt remove package_name

查看安装引导中选择安装的OpenSSH服务器是否状态正常

systemctl status ssh

下载终端工具 MobaXterm

下载地址:

MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download (mobatek.net)

配置 MobaXterm

打开Settings/Configuration

 更改软件界面DPI大小,我4K屏,默认选项时,菜单按键太小

保持ssh连接不中断,勾选 ssh keepalive,OK 保存

终端字体大小修改

控制台日志保存到本地

MobaXterm产生的临时文件,临时文件可能随时被删除或丢失,建议指定home和root目录,避免出现异常。

开始愉快的使用

输入密码登录

sudo(superuser do)命令免密码配置

输入sudo命令编辑该路径文件

sudo vim /etc/sudoers

输入当前用户密码,可以看到现在的sudo命令是需要密码的,键入密码回车

输入:wq会报文件只读,输入:wq!强制执行)保存退出即可

再次输入sudo命令查看该文件,可以看到已经不需要输入密码了

安装rsyslog查看sudo命令使用记录

安装系统日志服务(rsyslog),minimized 安装选项中并不包含。

# 更新软件包索引
sudo apt update

# 安装rsyslog
sudo apt install rsyslog

执行效果:

输入下面的命令可以查看使用 sudo 权限的用户及其执行的命令等信息

sudo grep 'sudo' /var/log/auth.log

可以看到sudo权限的时间、命令和用户名等使用记录,并且此时的时区不是东八区(UTC+8)。接下来我们安装时间同步工具:

安装及配置chrony来进行时间同步

安装Chrony。Chrony是一个现代的时间同步工具,通常比传统的NTP更快速和准确。

# 更新软件包索引
sudo apt update

# 安装chrony
sudo apt install chrony

执行效果:

编辑 /etc/chrony/chrony.conf 文件

sudo vim /etc/chrony/chrony.conf

将时区设置为中国标准时间(CST)

# 设置为中国标准时间(CST)
sudo timedatectl set-timezone Asia/Shanghai

# 检查时区设置
timedatectl

# 显示当前的日期和时间
date

重启系统并检查安装的服务和日志时间

sudo reboot

执行后,等一会,远程虚拟机重启后,按下R键重启会话

系统重启后,检查刚才安装的rsyslog和chrony是否开机自启且状态正常

# 检查 rsyslog 服务的状态
systemctl status rsyslog

# 检查 chrony 服务的状态
systemctl status chrony

接下来看看该日志中的时间是否为北京时间

 如果你需要查看特定用户sudo 命令使用情况,可以以下的命令:

sudo grep 'username' /var/log/auth.log | grep 'sudo'

系统至此已准备完毕,以上都是必备的。

可以以此为副本来克隆使用

以下为补充内容

仅主机模式:

查看默认配置的状态可知如何正确配置仅主机模式,仅主机模式下,vmnet1IP地址通常被设置为主机上的默认网关,先通过更改设置获取权限修改子网IP(叫网络地址更合适,标识整个网络或子网)和子网掩码来更改网关IP。

比如你可以设置:子网IP: 192.168.1.0,子网掩码: 255.255.254.0,vmnet1的IP地址(虚拟机需要设置的网关):192.168.0.1(将网关地址设置为“.1”是一种常见的做法,管理员和用户更易识别和记忆,在早期的网络规划中,这种设定就被广泛采用,并成为了一种标准做法,有助于简化子网规划,提高网络管理的效率,简化了网络管理和维护)。

网关IP:通常选择在子网内部靠前或靠后的地址,比如 192.168.0.1192.168.1.254,但绝不能是网络地址(192.168.0.0)或广播地址(192.168.1.255)。

当然这篇教程不是讲网络知识的,学过计算机网络的应该都有点印象,只讲一些关键。

将网络适配器设置为仅主机模式,可以避免克隆的虚拟机启动后被原始虚拟机的ssh会话连接上(克隆虚拟机和原始虚拟机ip相同),当然我们这里不需要,因为我们用来作为原始镜像的系统是不启动的,克隆的虚拟机启动后也会修改原始虚拟机的配置。

系统克隆

克隆开始

右边对应的界面打开时才有管理可选,否则管理选项是灰色的,然后

克隆虚拟机向导

按我固态硬盘(ssd)的速度,两秒就好了

至此已克隆完毕

克隆后需要修改的配置

修改主机名
# 重新设置主机名
sudo hostnamectl set-hostname newhostname

# 查看 /etc/hostname 文件
sudo cat /etc/hostname

# 检查当前主机名
hostname

# 编辑 /etc/hosts 文件
sudo vim /etc/hosts

# 查看 /etc/hosts 文件前两行
head -n 2 /etc/hosts

# 重启网络服务,以使新的主机名生效
sudo systemctl restart systemd-networkd

# 退出当前登录会话
exit

因为是克隆的,用之前原虚拟机的ssh会话就能连接上

修改成您的主机名

R重新登录,即可看到改变后的命令提示符中的主机名

配置IP地址
sudo tail -n 14 /etc/netplan/50-cloud-init.yaml

修改后的ip地址

出现Network error: Software caused connection abort后,ssh会话中断,修改当前会话ip地址

输入密码登录,查看路由表

更新服务器端的SSH主机密钥对
# 删除旧的SSH主机密钥
sudo rm /etc/ssh/ssh_host_*

# 重新配置SSH服务器以生成新的密钥
sudo dpkg-reconfigure openssh-server

查看新克隆虚拟机的主机密钥(可对比原始虚拟机)

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub

这里不给截图了。

更新机器ID
# 查看当前机器ID
cat /etc/machine-id

这里也不给截图了。

# 删除当前机器ID
sudo rm /etc/machine-id

# 生成新的机器ID
sudo systemd-machine-id-setup

重启虚拟机或相关服务以确保新的机器ID生效:

sudo reboot

重连会话时选择接受即可。

到这里整个教程就结束了,可以愉快地开始使用新克隆虚拟机。

;