VMware 搭建 Rocky Linux 8.6 最小系统:从安装到网络配置
如果你搜到这篇文章,多半是遇到了和我当年一样的窘境:镜像下载好了,VMware虚拟机装完了,Rocky Linux系统也进去了,结果面对着一个黑乎乎的命令行界面,敲ip addr一看——网卡有IP(其实可能连IP都没有),但就是ping不通外网,dnf install报错,连yum都跑不了。那一刻真的很容易心态爆炸。
这篇文章把我在VMware Workstation上从零部署Rocky Linux 8.6最小系统的完整过程写出来,包括创建虚拟机时的硬件选型、最小化安装时我自己踩过的分区和软件包坑、装完系统后最让人头疼的网络配置完整排查链路,以及从DHCP切换到静态IP的标准操作。全程按最小系统(Minimal)来讲,图片不重要,配置文件和命令才是关键。无论你是刚入坑Linux的小白,还是被虚拟机网络折腾过的老手,这套流程可以直接照着抄。
1. 为什么是Rocky Linux 8.6最小系统:CentOS谢幕后的最佳替代
先说选型的逻辑,免得大家走弯路。
1.1 Rocky Linux的前世今生
Rocky Linux是CentOS停止维护后社区接盘的RHEL下游发行版,定位就是“CentOS的精神续作”。和RHEL保持二进制兼容,yum/dnf的源、软件包命名习惯、Systemd管理方式都一脉相承。主流的Linux运维书籍和教程,只要你照着CentOS 8的命令去敲,在Rocky 8.6上基本都能跑通。
为什么我特意强调8.6这个版本号?因为Rocky Linux 8系列的生命周期支持到2029年,而8.6这个版本是2022年年中发布的,软件仓库里默认的PHP、MySQL、Python版本都比较接近生产环境实际在用的组合。如果你打算在这台虚拟机里跑Web服务、数据库或者学运维课程,8.6踩坑资料最多,查问题最容易搜到答案。
1.2 最小系统(Minimal)到底最小在哪
Rocky Linux的安装镜像有好几个变体,我们选的是Minimal版本。这个版本不带图形界面、不预装LibreOffice之类的办公软件、连浏览器都没有。装完以后就是一个纯命令行系统,占用磁盘大约3到4GB,内存512MB也能跑起来,但实际用建议给到1GB或2GB。
很多人觉得最小系统“少装了东西是不是不好用”,我的看法正好相反。从运维的角度讲,最小化安装意味着攻击面小、依赖干净、后期出问题的概率低。你不需要的东西装了反而是一种负担。需要什么用dnf install补什么,这才是服务器该有的样子。这台虚拟机就是拿来当服务器用的,不是当桌面环境的。
1.3 这套方案适合什么人
- 正在学Linux运维、需要一台干净的CentOS/RHEL系虚拟机做练习的人;
- 想本地搭一套轻量服务器环境(Nginx、MySQL、Docker)跑项目的开发者;
- 纯粹想体验命令行Linux、看看到底能折腾出什么名堂的初学者。
如果说上面这些场景和你沾边,那就继续往下看。整个过程从新建虚拟机到网络通、能联网装软件,大概20到30分钟,前提是方向要对着。
2. 创建虚拟机:VMware里最容易忽略的几个硬件选项
很多人栽在第一步:系统装完了才发现虚拟机硬件选错了,磁盘格式不对、虚拟化引擎没开、内存太小,导致后面各种问题。这一节值得认真看。
2.1 下载镜像时的版本选择
去Rocky Linux官网或者阿里云、清华的镜像站下载Rocky-8.6-x86_64-minimal.iso。注意文件名里带minimal的才是我们要的,完整版ISO有9GB左右(包含所有软件包),Minimal只有2GB上下,下载快得多。下载完建议顺手校验一下SHA256校验和,之前的下载工具如果中途断过,镜像损坏会导致安装器中途报错,排查起来极其痛苦。
2.2 VMware Workstation新建虚拟机向导:关键选项怎么填
打开VMware Workstation,选择“创建新的虚拟机”,然后按下面的参数走:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 安装方式 | 稍后安装操作系统 | 先把虚拟机框架建好,再挂载ISO |
| 客户机操作系统 | Linux → Red Hat Enterprise Linux 8 64位 | Rocky和RHEL同源,直接选这个 |
| 虚拟机名称 | 随便起,别用中文 | 建议rocky-8.6 |
| 固件类型 | BIOS或EFI均可 | 推荐BIOS,兼容性最稳,EFI也完全没问题 |
| 处理器数量 | 2个,每核1线程 | 最小系统用不到太多核 |
| 内存 | 2048MB | 低于1GB装完会很卡 |
| 网络类型 | NAT | 这是最省心的选择,后面会详细讲 |
| I/O控制器 | LSI Logic(默认) | 保持默认 |
| 磁盘类型 | NVMe或SCSI均可 | 建议NVMe,性能好一点 |
| 磁盘容量 | 20GB,拆分为多个文件 | 最小系统初始只占3-4GB,20GB很宽裕 |
有两点我想专门提醒。
第一,网络类型选NAT。NAT的好处是虚拟机通过宿主机上网,不需要你手动配置路由器和网段,只要宿主机能上网,虚拟机就能上网。这是新手期最不容易出问题的选择。桥接模式(Bridged)后面你自己理解了原理再切不迟。
第二,处理器设置里的“虚拟化引擎”选项,如果你的CPU支持虚拟化并且BIOS里已经开了VT-x/AMD-V,这仨选项直接全勾上。如果CPU比较老,也可以不勾,只是后续在虚拟机里再套娃跑虚拟机时会有性能损耗,对单纯装一个Rocky小系统没影响。
2.3 挂载ISO并调整启动顺序
新建完成后,编辑虚拟机设置,在CD/DVD选项里选择“使用ISO镜像文件”,指向你下载的Rocky-8.6-x86_64-minimal.iso。然后开机前确认“启动时连接”是被勾选的。
这一步看着简单,但有个细节:如果虚拟机启动后黑屏卡了很久,大概率是启动顺序里第一项是硬盘(空的没法启动),没有自动跳到光驱。你可以在虚拟机设置里找到“高级 → 引导选项”,勾选“启动时启用固件”菜单,或者直接重启虚拟机,在BIOS界面把CD-ROM Drive调到第一启动项。实际操作中,VMware Workstation在检测到ISO并连接后,默认会从光驱引导,很少需要手动改,但如果遇到引导不起来的情况,知道原因总比瞎等强。
3. 安装环节:分区方案和软件包选择直接决定后期体验
从光驱引导后进入的界面,第一个选项就是Install Rocky Linux 8.6,回车或者等倒计时自动进入。安装过程整体是图形化的,虽然不是桌面环境,但鼠标和键盘操作都支持。
3.1 安装概览界面里必须改掉的三个默认项
进入安装概览后,你会看到几个带感叹号的区块,依次处理:
日期与时间。默认是UTC的话,你后面看日志的时间戳都会和北京时间差8个小时,排查问题很别扭,直接选“亚洲/上海”。
软件选择。这里面默认是“带GUI的服务器”,我们要改成“最小安装”。右侧基础环境点开,选“Minimal Install”。注意这里还可以勾选右侧的附加软件,比如“标准”、“开发工具”。我的习惯是最小安装什么都不勾,因为后面都可以用dnf补。不过如果你想装编译环境(gcc、make这些),可以提前把“开发工具”勾上,免得初学者后面用
dnf groupinstall "Development Tools"时不知道这个命令的存在。安装目的地。点击进去后默认是“自动配置分区”。我强烈建议手动分区。等一下,手动分区不是要你开LVM搞多复杂的结构,而是因为自动分区默认给
/home分配的容量很大,而大部分人在虚拟机上根本用不到/home这个独立分区。
3.2 手动分区的推荐方案
点“安装目的地”,选择那块20GB的虚拟磁盘,然后勾选“自定义”,点击“完成”后进入手动分区界面。选择“标准分区”(不是LVM),按下面这个方案来:
| 挂载点 | 容量 | 文件系统 | 备注 |
|---|---|---|---|
| /boot | 1GB | xfs | 引导分区,给1GB非常充裕 |
| swap | 2GB | swap | 内存2GB,交换分区对等即可 |
| / | 剩余全部 | xfs | 根分区,所有数据放这里 |
为什么要这么分?因为虚拟机的使用场景就是日常学习、跑服务、装软件,你所有的项目文件、数据库文件最终都在/下面。/home独立分区在个人虚拟机上完全是浪费空间——每块分区都是一个尺寸固定的容器,/满了而/home空着的情况我见了太多次。直接一刀切让/用整块磁盘,最省心。
文件系统选xfs就对了,这是RHEL系默认的现代文件系统,支持大文件和快照。不用ext4,虽然ext4也没毛病,但既然系统默认给了xfs,就顺着来。
3.3 根密码和用户创建:这一步千万别跳过
回到安装概览界面,你会看到“根密码”和“用户创建”两个还有感叹号的区块。
根密码就是你登录root用的密码。这里记住一个原则:给虚拟机设密码,也不要设成root、123456这种玩意儿,密码复杂度至少超过8位并且有字母数字。别觉得虚拟机无所谓,一旦你以后把这个环境搭成对外服务,弱密码就是自杀。
用户创建这里我建议创建一个自己的普通用户,勾选“让此用户成为管理员”(即加入wheel组,后面可以用sudo)。但这步不是必须的,我个人的做法是:最小系统先不建普通用户,等到系统装完,用root做完全部基础配置后再创建一个日常操作用户。原因很简单——最小系统刚装完状态最干净,所有初始化操作都牵涉系统级路径和权限,用root操作是最高效的。但你也完全可以在这里直接创建用户,后面为这个用户设置sudo权限即可。
全部设置完、没有感叹号区块后,点“开始安装”。安装过程大约5到10分钟,取决于机器性能。装完后点“重启系统”,然后虚拟机会重新启动到命令行界面。
4. 开机后的第一轮系统设置与镜像源更换
重启后你看到的画面就是黑底白字的登录提示符。输入root密码登录,就正式进入了这个最小系统。这时候系统里连vim都没有——别急,这是正常的。
4.1 确认系统版本和基础信息
登录后先敲三条命令确认状态:
cat /etc/rocky-release uname -r free -h第一条看系统版本,你应当看到Rocky Linux release 8.6。第二条看内核版本,8.6默认带的是4.18内核。第三条看内存。如果某个上面没输出,别慌,通常是VMware虚拟机内存给太少了,返回去把虚拟机配置调大再重装一次也不算浪费时间。
然后是ip addr看网卡和IP状态,这一步同时也在给后面做铺垫。如果你能看到类似192.168.xxx.xxx的地址,说明这台机器的NAT网络已经自动拿到IP了,运气不错。如果什么输出都没有或者只有127.0.0.1,那就先继续往下看,第5节会专门解决这个问题。
4.2 更换镜像源:不换源你连vim都装不了
最小系统中dnf命令肯定是有的,但默认的官方源服务器在海外,国内下载速度经常只有几十KB每秒。装完系统后第一件事就是把BaseOS和AppStream两个仓库的源换成阿里云或者清华的镜像。
Rocky Linux 8.6换源的思路和CentOS 8一样,只是版本代号从CentOS-8变成了Rocky-8。先确认一下源目录:
ls /etc/yum.repos.d/你会看到rocky-baseos.repo、rocky-appstream.repo等几个文件。手动改太麻烦,直接用一个命令组完成替换:
cd /etc/yum.repos.d/ sed -i 's|^mirrorlist=|#mirrorlist=|g' *.repo sed -i 's|^#\s*baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' *.repo如果手动修改,就是把baseurl这一行的http://dl.rockylinux.org/$contentdir部分替换成https://mirrors.aliyun.com/rockylinux。改完以后执行:
dnf makecache这个命令会重新生成软件缓存。如果输出里能看到类似Rocky Linux 8 - BaseOS 加速的仓库信息并且没有报404,说明源已经生效了。
这里有个高概率遇到的坑:你前面locate下载的镜像可能在某个大版本升级目录里,而镜像站的重定向策略会改变,所以如果dnf makecache报404错误,建议打开阿里云镜像站看一下实际目录结构再改,不要生搬硬套命令。
4.3 第一批必装软件
源搞定以后,先把最基础的几个工具装上:
dnf install -y vim-enhanced net-tools wget tarvim-enhanced是真正的vim编辑器,最小系统里默认只有vi。net-tools提供ifconfig、netstat这些老牌命令——虽然官方教育大家用ip命令,但实际排查问题的时候,netstat -tlnp看端口监听是真的方便。wget和tar是后面下载和解压各种软件包的必备工具。
装完后顺手把系统更新到最新:
dnf update -y这一步会花几分钟,但值得。更新完最好重启一次(reboot),让内核稳定运行在新版本上。
5. 网络不通的完整排查链路:从NAT原理到配置文件
这一节是整篇文章的重头戏。我统计过身边朋友装Rocky/CentOS虚拟机遇到的所有问题,“网络不通”占了七成以上。你网络通了,后面全都是顺风顺水;网络不通,连dnf install都跑不了。
5.1 VMware NAT模式的工作机制,搞懂它才能排查问题
先不急着调命令,花30秒理解模型。当你把虚拟机的网络类型选成NAT时,VMware会在宿主机上虚拟出两个东西:
- 一个虚拟网卡
VMnet8,它挂在宿主机上,作为虚拟机的“网关”; - 一个内置的NAT设备,负责把虚拟机发出来的包转换后通过宿主机的物理网卡发出去。
换句话说,虚拟机根本不知道外界的真实网络拓扑,它眼里只有一个局域网,网关就是VMnet8的IP。VMware Workstation默认的NAT网段是192.168.xxx.0/24,其中xxx可能是111,也可能是112之类的,取决于你安装时是否有其他虚拟网卡占用。
Rocky Linux最小系统安装时,默认使用的是DHCP(动态主机配置协议),也就是说,安装器会要求虚拟机的网卡去向VMnet8请求一个IP地址。正常情况下它会拿到一个192.168.xxx.xxx地址,网关是192.168.xxx.2,DNS服务器也是192.168.xxx.2。只要这个链路正常,你就能上网。
所以当你发现网络不通时,问题基本出在几个环节:网卡没启动、网卡没拿到IP、DNS解析不了、网关不通。下面一条条排查。
5.2 排查第一步:查看网卡状态和IP地址
登录系统后先看这个:
ip addr输出里会有一块设备名类似ens160或ens33的网卡,它下面如果有inet 192.168.xxx.xxx/24这样的内容,说明网卡已经拿到IP了。如果只有lo(回环地址)而没有第二块网卡的IP,说明网卡没有开启DHCP或者没有启动。
这时候先试试直接查看这个网卡接口是否存在:
ip link show ens160如果网卡名字存在但显示state DOWN,用下面的命令直接拉起来:
nmcli device connect ens160nmcli是NetworkManager的命令行工具,Rocky 8.6默认由NetworkManager管理网络。如果这条命令不报错,网卡就up了。立刻再查一次ip addr,看是否拿到IP。
5.3 排查第二步:确认网卡配置文件没问题
如果nmcli device connect之后还是没有IP,那就去看网卡配置文件。Rocky 8.6最小系统的网络配置目录在:
/etc/sysconfig/network-scripts/列出ifcfg-*文件:
ls /etc/sysconfig/network-scripts/正常情况下,这里应该有一个ifcfg-ens160(网卡名可能不同)。用vim打开它:
vim /etc/sysconfig/network-scripts/ifcfg-ens160你会看到几个关键字段。最常见的问题就是ONBOOT=no,这是网卡开机不自启的罪魁祸首。
BOOTPROTO=dhcp ONBOOT=yesBOOTPROTO=dhcp表示自动获取IP,ONBOOT=yes表示开机启动网卡。这里必须两个都正确。
改完后保存退出,然后让NetworkManager重新加载配置:
nmcli connection reload nmcli device disconnect ens160 nmcli device connect ens160再查ip addr,如果还是没IP,继续往下看。
5.4 排查第三步:检查NetworkManager的运行状态
有时候问题更隐蔽——NetworkManager服务本身没在跑。注意,最小系统装完后NetworkManager默认是启用的,但某些时候配置改乱了、或者你在安装时选了“网络自动配置”但没生效,会有服务异常的情况。
检查命令:
systemctl status NetworkManager如果显示active (running),跳过这一节。如果显示inactive或者failed,就直接启动并设置开机自启:
systemctl enable --now NetworkManager重启NetworkManager后,再次检查网卡配置是否正常加载:
nmcli device status这个命令会显示所有网卡设备的状态,TYPE为ethernet,STATE应该是connected,CONNECTION一列显示ifcfg-ens160。
5.5 排查第四步:手动DHCP获取IP
如果NetworkManager是正常的、配置文件也改了,但依然没有IP,那就手动DHCP一把梭,强制网卡去要地址:
dhclient ens160如果这条命令执行后没有输出,等两三秒再ip addr。如果你看到网卡下多了一个192.168.xxx.xxx/24的地址,说明之前某个环节的自动流程没走通,现在能用就先凑合着用。
为什么会有这种情况?我遇到过一次是因为VMware的DHCP服务被电脑上的其他虚拟化软件(比如WSL、Docker Desktop)占用了端口,导致VMnet8的DHCP服务分配不出地址。这时候手动用dhclient可以临时解决问题,但根治方法是去VMware的虚拟网络编辑器里把NAT子网的DHCP配置重新设置一下,或者重启一次VMware的NAT服务。
5.6 排查第五步:DNS和网关测试
拿到IP以后,网络不一定真的通。先测网关连通性:
ip route show你应该能看到类似default via 192.168.xxx.2 dev ens160的路由条目。没有默认路由的话,说明DHCP没有把网关信息下发给网卡,手动补上:
ip route add default via 192.168.xxx.2 dev ens160然后测试网关能不能ping通:
ping -c 4 192.168.xxx.2通了说明虚拟机和宿主机的虚拟网卡之间的二层三层的链路都是好的。接下来测DNS是否正常:
nslookup mirrors.aliyun.com如果解析不出来,先别慌,直接看看当前用的DNS是什么(cat /etc/resolv.conf),然后手动改成一个公共DNS试试。之后验证外网:
ping -c 4 mirrors.aliyun.com这一步走通了,恭喜,你的虚拟机网络彻底通了。第6节就可以开始配置静态IP了——如果你不想每次都依赖DHCP的话。
6. 配置静态IP与DNS:从DHCP到固定地址的完整步骤
DHCP虽然省心,但有个问题:IP地址每次重启虚拟机后可能不一样。如果你在这台虚拟机上部署了MySQL、Redis或者SSH服务,IP一变就意味着你的客户端配置全要跟着改,这个体验实在太糟糕。所以生产导向的服务器,静态IP是标配。
6.1 确认NAT网段的信息
配置静态IP之前,先搞清楚你的NAT网段具体是多少。在VMware Workstation菜单栏打开“编辑 → 虚拟网络编辑器”,选中NAT模式对应的VMnet8,查看子网IP和子网掩码。假设你看到的是192.168.111.0/24,那么网关就是192.168.111.2,DNS服务器可以用192.168.111.2,也可以直接指到223.5.5.5(阿里DNS)。
拿到这四个值(IP地址、子网掩码、网关、DNS)之后,静态IP的配置就只是个写文件的活了。
6.2 修改网卡配置文件实现静态IP
还是打开/etc/sysconfig/network-scripts/ifcfg-ens160,把内容改成下面这个样子:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens160 UUID=xxxx-xxxx-xxxx-xxxx-xxxx DEVICE=ens160 ONBOOT=yes IPADDR=192.168.111.10 PREFIX=24 GATEWAY=192.168.111.2 DNS1=223.5.5.5 DNS2=192.168.111.2这里有几个字段的性质变化要理解:
BOOTPROTO从dhcp改成了none,表示不再用DHCP,网卡使用静态配置。你也可以写static,在RHEL系里面none和static效果相同。IPADDR就是你自己指定的固定IP,注意不要和NAT网段里其他设备冲突。我习惯用.10,很好记。如果你想流水化规划,可以按用途来,比如.100跑Web、.110跑数据库。PREFIX=24等价于NETMASK=255.255.255.0,写哪个都行。GATEWAY填VMware NAT的网关地址,一般是192.168.xxx.2。DNS1和DNS2填两个DNS,避免一个不工作了另一个还能顶上。
UUID那栏保持原来的值不变。保存退出后,重启NetworkManager让你改的东西生效:
nmcli connection reload systemctl restart NetworkManager重启后验证IP是否绑定成功:
ip addr show ens160看到192.168.111.10/24,再实测一下外网:
ping -c 4 mirrors.aliyun.com通了就大功告成。以后每次虚拟机重启,这个IP都不会变了。
6.3 静态IP配置中有个隐藏的大坑:DNS丢失
这个坑我踩了不止一次。配置完静态IP、ping外网通常都通,但如果你继续装完软件,配置完某个服务,过几天突然发现域名解析很慢甚至解析不了,第一反应是排查DNS问题。
如果你修改了/etc/resolv.conf这个文件(直接改它),你会发现一旦重启NetworkManager,你写的DNS配置就被“覆盖”回配置文件里指定的DNS了。原因是RHEL 8默认启用了NetworkManager的DNS管理功能,它会强制使用ifcfg-ens160里的DNS1和DNS2来生成/etc/resolv.conf。
所以配置DNS的正确姿势是:把你想要用的DNS写在ifcfg-ens160配置文件的DNS1=、DNS2=字段里,不要直接去改/etc/resolv.conf。
如果你确实需要单独给某个服务做定制DNS解析,比如内网有一个自建DNS服务器,那建议直接用/etc/hosts文件做静态解析,或者用systemd-resolved来接管,不要和NetworkManager抢resolv.conf的控制权,不然每次重启都是覆写一遍、毫无意义。
6.4 防火墙和SELinux要不要关
Rocky Linux默认开启了firewalld防火墙和SELinux。很多人刚装上系统第一个动作就是关掉防火墙、关掉SELinux,理由是“太麻烦,影响开发”。
我对防火墙的态度是:如果你只是学习用、内网测试用,直接把firewalld服务和SELinux关掉可以省很多事情。但如果你以后想认真用这台机器跑服务,我强烈建议你学会和firewalld共存。理由很简单:生产环境的Linux默认都有防火墙保护,你现在不学这套规则语法,将来上生产环境,连放行80端口都不知道怎么操作,那才是真尴尬。
实际命令顺便给你:
systemctl stop firewalld systemctl disable firewalld sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config改完SELinux必须重启才生效。重启后可以用getenforce确认状态已经变成Disabled。学完了firewalld的用法,再把它开回来也不迟。
7. 最小系统装好后必做的基础配置与收尾建议
网络通了、静态IP固定了,这台虚拟机已经从一个“能启动的系统”变成了“基本可用的服务器”。但还差几块拼图,才算是打造了一个舒服的开发环境。
7.1 创建日常操作用户并配置sudo
用root操作一切虽然效率高,但风险也大——手一抖删了不该删的系统目录,哭都来不及。安全习惯要趁早培养。创建一个名为dev的普通用户,并把它加入wheel管理员组:
useradd dev passwd dev usermod -aG wheel devwheel组在RHEL系里有特殊含义——组内成员默认可以通过sudo执行管理员命令。切换到dev后试一下:
sudo whoami输入密码后如果输出root,说明sudo配置生效了。如果你希望某些命令不用每次都输密码,可以用visudo打开sudoers文件,但初次配置保持默认行为就好——每次输密码并不麻烦,反而能给你冷静的机会。
7.2 SSH远程登录:为什么必须从一开始就设置好
最小系统默认带了OpenSSH Server(这个可以在安装时软件选择里确认),装完系统后你可能想用宿主机上的SecureCRT、XShell或者Windows Terminal直接连过去操作,比在VMware的虚拟机窗口里操作舒服得多。
先确认SSH服务状态并设置开机自启:
systemctl status sshd systemctl enable --now sshd然后在你宿主机上ping一下虚拟机IP,如果通了,直接用SSH客户端连接:
ssh dev@192.168.111.10如果连接超时,第一件事就是检查防火墙(如果你没关的话):
firewall-cmd --permanent --add-service=ssh firewall-cmd --reload再说一个提升幸福感的小技巧——配置SSH密钥登录。在你宿主机上执行ssh-keygen生成一对密钥,然后把公钥拷贝到虚拟机:
ssh-copy-id dev@192.168.111.10之后每次SSH登录就不需要输密码了,用密钥认证。这个习惯对以后登录云服务器同样有用。
7.3 安装一组开发常用的软件包
最小系统里连gcc、make都没有。如果你要编译安装软件,下面这一组命令把它们全部搞定:
dnf groupinstall -y "Development Tools" dnf install -y gcc-c++ make cmake git如果你想在这个环境里捣鼓Docker,顺手把依赖装了:
dnf install -y yum-utils device-mapper-persistent-data lvm2装完以后,这个最小系统就不“最小”了,但它拥有了一台服务器该有的完整能力。
7.4 打一个初始快照:这是你最重要的后悔药
配置到这个阶段,系统状态是最干净、最健康的。我强烈建议你在VMware里打一个快照。
操作方式:虚拟机菜单 → 快照 → 拍摄快照 → 起个名字“Rocky 8.6 安装配置完成-网络正常”。以后无论怎么折腾坏(比如删了系统文件、装依赖出错、配置乱了),都可以在10秒钟内回到这个干净的初始状态。
这个习惯是我用虚拟机这么多年最想告诉所有初学者的一个建议:快照不是用完即弃的工具,而是你实验的后悔药。你后面的每一次大改动(装一个复杂的服务、升级内核、调整网络架构),都应该先打一个快照,再动手。出问题一键回滚,完全没有心理负担。
写在最后的一些体会
整套流程写下来,你会发现核心其实不复杂:VMware创建虚拟机 → 最小系统安装 → 换源 → 网络配置 → 基础加固。每一步都有坑,但每一步的坑都有规律可循。
我个人的经验是,虚拟机环境的网络问题,90%以上可以归结到三个原因:网卡ONBOOT没开、NetworkManager没正常工作、防火墙/DNS配置混乱。排查顺序永远从“看IP”开始,逐步检查“路由、网关、DNS、防火墙”,不要跳步。跳步的结果就是这里改一下那里试一下,最后自己都记不清改了什么,更别提回滚。
另外说句实在话,如果你是第一次接触RHEL系的最小系统,别怕命令行。那些看起来黑压压的字符界面,其实是Linux最真实的样子。你在VMware里搭出来的这20GB小系统,和你在阿里云、腾讯云上买的云主机,内部是完全一致的。把这一套流程走通一遍,相当于把你自己的密码、防火墙、SSH这套玩法练熟了一遍,以后面对任何一台Linux服务器,你都有底气说一句:这玩意儿,老子弄过。