刚把一套RHEL9在VMware里完整跑通从创建虚拟机、装系统、SSH远程连接到基础配置全程踩了不少坑。这套流程适合0基础纯小白也适合习惯用图形界面操作、不想碰命令行的人参考。我按实际操作的顺序把每个环节拆开讲你照着一步步做基本半小时内就能看到系统起来再用SSH从宿主机连进去干活。先说明一下我用的环境宿主机是Windows 11VMware Workstation Pro 17镜像用的是RHEL9.3。不同版本差异不大只要记住“VMware官方原版Red Hat官方镜像”这两个底线后面所有操作都能对得上。1. 环境准备与工具选型1.1 为什么推荐VMware Workstation做实验环境在动手之前先解决一个问题装Linux系统为什么首选虚拟机而不是直接物理机安装因为虚拟机有一个物理机给不了的杀手锏——快照。装系统前拍个快照后面无论把系统折腾成什么样一条快照回滚就能恢复到一个已知的好状态。我见过太多人在真实机器上装Linux配置repo源时手滑改错文件然后系统一重启起不来最后只能从头重装那个滋味太难受了。虚拟机里完全没有这种后顾之忧。VMware Workstation在同类产品里胜在两个点一是对Linux发行版的支持列表非常全装RHEL时能自动识别系统类型并给出推荐配置省去自己查兼容参数的步骤二是磁盘性能调控做得比较成熟尤其是不装VMware Tools也能保证基本的图形界面流畅度。VirtualBox其实也能干这活但它对RHEL的Guest Additions支持一直不如VMware Tools那么省心所以我的建议是实验环境首选VMware。1.2 VMware下载安装与BIOS虚拟化检查下载VMware Workstation Pro认准官方渠道就好。需要注意一个时间点Broadcom收购VMware之后Workstation Pro开放了个人免费使用注册一个账号就能拿到个人license。安装过程没什么坑一路Next就行。唯一要注意的是如果你装的是17.6以上版本首次启动会提示输入license个人用途直接选continue试用或填入免费申请的key即可。安装完成后的第一件事不是急着建虚拟机是检查宿主机BIOS里有没有打开虚拟化。判断方法很简单打开任务管理器切到“性能”标签页看底部“虚拟化”这一项是否是“已启用”。如果显示“已禁用”需要进BIOS把Intel VT-x或AMD-V打开。这一步不做后面新建虚拟机启动时100%报错提示“The host does not support Intel VT-x”到时候一切准备工作都白费。提示检查完虚拟化开关之后顺手去控制面板的“启用或关闭Windows功能”里确认“Windows虚拟机监控程序平台”没有被勾选如果勾了会干扰VMware使用嵌套虚拟化可能导致启动虚拟机时莫名其妙崩溃。2. 下载RHEL9镜像与创建虚拟机2.1 RHEL9镜像获取渠道很多人觉得RHEL是商业发行版就得付费实际上Red Hat对开发者提供了免费订阅计划。去Red Hat官网注册一个账号登录后进入“Red Hat Developer”订阅中心在Downloads页面里就能下载RHEL 9.x的ISO镜像一般有DVD ISO和Boot ISO两种实验用选完整的DVD ISO大概4到6GB省得装到一半要求联网补充安装包。如果你不想注册账号也可以用CentOS Stream 9作为替代镜像它跟RHEL9同源操作方式完全一致只是软件仓库更新策略略有差别。实验学习用两者没有本质区别。下载下来的ISO建议校验一下SHA256值Red Hat官网每个下载项旁边都给了校验值Windows下用PowerShell执行Get-FileHash -Algorithm SHA256 .\rhel.iso就能对比避免下载损坏后面折腾半天。2.2 新建虚拟机向导的关键配置打开VMware点“创建新的虚拟机”建议选择“自定义高级”不要用“典型”。原因为什么典型模式会走默认硬件配置内存、CPU、磁盘都按VMware预设值来对于RHEL9这种建议内存2GB起步的系统默认给的1GB已经不够用了。自定义模式可以让你在最前面就把硬件参数设到位少走一回回头路。向导第一个关键步骤是选择虚拟机的兼容性如果你的宿主机是新CPU选Workstation 17.x就行了。接着进入“安装程序光盘映像文件”这一页直接浏览选中下载好的RHEL9 ISO。然后会出现一个系统识别提示VMware会自动填上“Red Hat Enterprise Linux 9 64-bit”确认一下即可。你先不用急着在这里就启动安装后面每一步都还有机会调整。存储虚拟磁盘这一页存在一个容易忽略的坑默认创建的是单个20GB磁盘建议改成至少40GB。RHEL9完整安装加上开发工具包、后续的软件更新20GB往往过一段时间就不够用了。磁盘分配策略选“将虚拟磁盘拆分成多个文件”这样磁盘文件分散跨平台拷贝时不容易出现单个大文件超过文件系统限制的尴尬。不需要勾选“立即分配所有磁盘空间”用动态增长模式就好省宿主机磁盘空间性能差异在实验环境里感知不到。2.3 自定义硬件参数的合理取值完成向导后别急着点“开启此虚拟机”先选中虚拟机进入“编辑虚拟机设置”把几个关键配置改掉。内存设2048MB或4096MB取决于宿主机内存大小处理器核心数设2个就够了实验系统不抢性能多了反而影响宿主机响应。网络连接这里重点说说VMware提供了桥接、NAT、仅主机三种模式。桥接模式虚拟机像宿主机一样直接接入局域网有独立IP。适合要跟局域网其他设备互相访问的场景但要求宿主机网段有可用IPNAT模式虚拟机通过宿主机共享上网外部访问不到虚拟机适合只练系统、不需要外界连进来的场景仅主机模式虚拟机只能跟宿主机通信不能访问外网适合做纯隔离实验。我的建议如果你只是想练习RHEL安装和配置不需要被局域网其他电脑连接用NAT模式最省事但如果你后面要练SSH从外部连接、模拟真实服务器部署环境直接选桥接模式省得装完系统再去改网络模式。我这次就是桥接模式宿主机和虚拟机在同一网段SSH连接非常顺畅。新CD/DVD设备确认选择了“连接启动时”并指向ISO文件软盘设备直接移除那个东西现在没用了留着有时候反而会引起驱动识别问题。USB控制器也建议把“启动时连接”关掉不需要让虚拟机独占宿主机的外设。3. RHEL9安装系统全过程3.1 启动安装与图形界面引导虚拟机硬件配置确认没问题之后点“开启此虚拟机”RHEL9的安装引导界面就出来了。三个选项区别要搞清楚最上面的“Install Red Hat Enterprise Linux 9”是标准图形化安装直接回车中间的“Test this media install”会先校验一遍ISO完整性安装包是官网下载且校验过的情况下没必要再浪费这几分钟“Boot existing system”是给已有系统用的新装用不上。回车确认之后系统会进入一个简短的加载阶段随后弹出语言选择界面选英文或者中文都行选中文会有一个翻译不完整的小风险但核心菜单都能看懂。建议系统语言跟键盘布局分开看。界面语言选中文没问题键盘不要动默认的英语美国就行避免中文键盘布局影响后面输入命令时的特殊字符。3.2 安装信息摘要页面的逐项处理进入“安装信息摘要”页面后左边的条目从上到下过一遍。时间与日期默认是UTC中国大陆时区需要改成“亚洲-上海”不然系统时间和本地时间差8个小时。键盘、语言这些前面已经确认过。重点看以下几个方面。软件选择决定装出来的系统长什么样。点开“软件选择”左侧列的是不同用途组合工作站带GUI、带GUI的服务器、服务器最小安装等。RHEL9跟RHEL8略有区别如果选“带GUI的服务器”会装一套GNOME桌面环境安装包多、耗时较长适合想练图形界面操作的新手如果选“最小安装”只有命令行界面占用磁盘空间小虚拟内存占用也低。我这次为了同时兼顾SSH远程管理和桌面体验选了“服务器带GUI”但你如果走纯命令行路线选“最小安装”然后在软件选择页右下角右侧的“其他选项”里勾选需要的组件比装完后悔再手动装一堆包感觉快多了。这里我要提醒一句软件选择是在安装阶段就定基调的后面再改需要动dnf组安装命令新手容易卡在依赖关系里出不来所以这一步尽量一次想清楚。3.3 安装目标地的分区策略进入“安装目的地”能看到VMware创建的那块40GB虚拟磁盘。首次安装的人最纠结的就是分区方案。RHEL9默认提供“自动配置分区”点完成之后系统会用LVM逻辑卷管理自动生成/boot、/根分区和swap交换分区。对实验环境来说自动分区完全够用。如果你对分区有洁癖想手动分我的参考方案是/boot给1024MBxfs文件系统/根分区给30GBxfsswap给2GB到4GB剩下的空间全部给/home或者直接并入根分区。需要注意的是RHEL9默认文件系统是xfs不要手改成ext4虽然也能用但官方对xfs的优化和后续运维工具支持更全面。分区设完点“完成”在“接受更改”界面确认无误再继续。3.4 设置root密码与创建普通用户回到安装摘要页面左下角“root密码”和“创建用户”这两个必做。root密码是Linux系统管理员账户的命根子建议设一个16位以上、包含大小写字母数字和符号的强密码。密码设置页还会提示你提示词强度够不够别选太弱的密码尤其是这台机器后面还要开放SSH服务。创建用户这步很关键。RHEL9安装界面会提供“将此用户设为管理员”的选项建议勾上。我更推荐的思路是创建一个普通用户并勾选“允许该用户通过SSH登录”因为后面日常操作用普通用户更符合Linux安全实践需要管理员权限时用sudo命令临时提权比直接用root操作多了一层保障。这个用户的密码可以跟root不一样强度同样要管好。全部设置完成后点“开始安装”。这个时候系统会在后台装包界面上可以看到安装进度和日志。等进度条走完点“重启系统”就进入安装后的首次初始化了。3.5 重启后的初始化过程重启后的第一个界面是License Information必须勾选接受最终用户协议才能继续。然后是网络设置能看到一个网卡把开关从OFF拨到ON如果之前选了DHCP自动获取这时候系统会拿到IP。把自动连接开关打开确保重启后网络可用。这一步别跳过很多人装完系统发现上不了网就是在这里没把网卡打开。初始化完成进入登录界面用你前面创建的普通用户登录。登录后打开终端先执行一条命令确认网络和IP是否正常ip addr看到类似inet 192.168.x.x的输出就说明网络通了记下这个IP地址后面SSH远程连接要用。注意这里的IP是DHCP动态分配的重启后可能会变。要保证后面SSH连接稳定建议在基础配置阶段把IP改成静态地址具体操作在第五章详细说。4. 配置SSH远程连接详解4.1 确认sshd服务是否正常运行RHEL9安装时openssh-server这个包默认会装上但服务不一定会自启动。在虚拟机里先执行systemctl status sshd如果显示Active: active (running)恭喜说明服务在跑。如果显示inactive (dead)需要启动并设置开机自启sudo systemctl enable --now sshdenable --now两个动作一次搞定enable是设置开机自动启动--now是立即启动当前服务省一条命令的事。执行完再执行一次systemctl status sshd确认。ssh怎么理解开个终端就能远程连进服务器的能力就像你人在家里用远程桌面连办公室电脑只不过它是纯命令行的、走的是加密通道所有传输内容都是密文。这个端口默认是22号端口官方叫SSH协议。4.2 防火墙放行SSH服务RHEL9默认装了一套叫firewalld的防火墙默认策略是“拒绝未放行的外部连接”。SSH服务虽然跑起来了但防火墙不放行22端口从宿主机连接会被直接拒掉。执行sudo firewall-cmd --add-servicessh --permanent sudo firewall-cmd --reload第一条命令把SSH服务加入放行列表--permanent表示永久生效不写这个参数的话重启防火墙就失效了第二条命令重新加载防火墙规则让配置立即生效。验证一下sudo firewall-cmd --list-services输出里包含ssh就说明放行成功。也可以用--add-port22/tcp直接放行端口效果一样--add-servicessh的好处是服务名和端口号的对应关系由系统管理不用自己去记数字。4.3 从宿主机发起SSH连接Windows 10/11自带了OpenSSH客户端不需要装任何第三方软件就能连。打开PowerShell或CMD执行ssh 用户名虚拟机IP地址比如我创建的用户是demo虚拟机IP是192.168.1.100就执行ssh demo192.168.1.100第一次连接会弹出The authenticity of host 192.168.1.100 cant be established的提示问你是否确认连接。这是因为主机的指纹密钥还没被记录过输入yes回车就好。接着输入密码看到命令行前缀变成类似这样说明连接成功[demolocalhost ~]$如果你更喜欢图形化终端工具MobaXterm、Tabby、Xshell、FinalShell都是很好的选择。MobaXterm是我用得比较多的session里新建SSH会话填IP和用户名即可记住把编码设成UTF-8不然中文输出有乱码风险。4.4 SSH密钥登录配置与细节密码登录每次都要输密码而且密码在网络上是按加密通道传输的暴力破解的风险客观存在。更稳妥的做法是配置密钥登录。密钥相当于一套“锁和钥匙”公钥放在服务器上相当于锁私钥留在本地相当于钥匙。在宿主机PowerShell里生成密钥ssh-keygen -t ed25519 -C developerwin11按回车确认默认保存路径设置一个私钥密码短语passphrase保护私钥防止私钥文件泄露后被滥用。生成完成后在用户目录的.ssh文件夹下会看到id_ed25519私钥和id_ed25519.pub公钥两个文件。然后把公钥传到服务器type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh demo192.168.1.100 mkdir -p ~/.ssh cat ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys这行命令的作用是把本机的公钥内容附加到服务器的~/.ssh/authorized_keys文件里并设置目录和文件的权限。authorized_keys文件权限必须是600目录权限必须是700否则ssh服务会出于安全考虑拒绝使用密钥登录。验证密钥登录ssh demo192.168.1.100不再要求输入密码而是直接登录成功密钥配置就完成了。如果还提示输入密码多半是权限问题或公钥没写对位置用-v参数调试ssh -v demo192.168.1.100-v参数会输出详细的连接过程日志仔细看Authenticated with或Offering public key这两行的输出能定位到问题出在客户端还是服务端。4.5 SSH安全加固的几个推荐操作密钥登录配置成功后建议对sshd做以下安全加固。编辑配置文件sudo vi /etc/ssh/sshd_config找到并修改以下几项PermitRootLogin no禁止root用户直接SSH登录强制先用普通用户登录再切换。PasswordAuthentication no关闭密码登录只允许密钥登录这一步风险很高确认密钥登录稳定后再操作。MaxAuthTries 6限制单次连接尝试次数减少暴力破解影响面。Protocol 2现在默认都是协议2确认没被改成1就行。改完配置后重启服务生效sudo systemctl restart sshd警告关闭密码登录前一定要测试一遍密钥登录是否跑通并且保持当前SSH会话不要退出。万一密钥登录失败你还能用当前会话把配置改回来不然就等着去VMware控制台里用图形界面改配置吧误操作时窗口不会等着你。5. 操作系统基础配置5.1 静态IP配置让SSH连接不失效DHCP分配IP的麻烦在重启之后就会暴露虚拟机重启后IP变了之前保存的SSH会话地址全部失效主机名到IP的映射也要重新记。为了避免这个麻烦把网卡改成静态IP。先找到网卡名称nmcli device status看到类似ens160的网卡名字。执行以下命令设置静态IPsudo nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 sudo nmcli connection up ens160这里解释几个参数192.168.1.100/24中的/24表示子网掩码是255.255.255.0网关必须填你所在局域网的路由器IP填错会导致虚拟机无法访问外网DNS填8.8.8.8是Google公共DNS国内环境建议换成运营商提供的DNS或填114.114.114.114否则可能出现能Ping通IP但域名解析不了的情况。配置完执行ip addr确认网卡地址变成了静态IP再测试一下外网连通性ping -c 4 www.baidu.com能收到回包说明网络配置没问题。5.2 修改主机名与时间同步默认主机名叫localhost.localdomain在SSH连接时提示符看着很别扭改成有辨识度的名字sudo hostnamectl set-hostname rhel9-lab执行完重新打开会话就能看到新主机名。/etc/hosts文件也顺手改一下把127.0.0.1 localhost这一行后面加上主机名解析避免部分服务因为主机名解析失败告警sudo vi /etc/hosts时间同步用系统自带的chrony。RHEL9默认安装了chrony启用并启动服务sudo systemctl enable --now chronyd确认时间同步状态timedatectl检查System clock synchronized: yes这一项。如果是no等待几十秒再查一次或者手动触发同步sudo chronyc makestep5.3 注册软件源与系统升级RHEL9的软件源默认需要订阅才能访问这也是RHEL和CentOS最大的体感差异。你如果没有注册Red Hat订阅dnf更新时大概率报This system is not registered的错误。有两个解决方案方案一用Red Hat开发者订阅免费注册。在虚拟机里执行sudo subscription-manager register --username 你的账号 --password 你的密码 sudo subscription-manher attach --auto方案二如果只是想做实验不想注册可以换成Rocky Linux或者AlmaLinux的镜像源但这样系统的“RHEL纯度”就有折扣了后续升级路径也和官方不一致。我的建议是既然装的是RHEL就按Red Hat的规矩来注册开发者订阅不花钱还能体验完整的订阅管理流程。注册完成后更新系统sudo dnf update -y这里解释一下dnf是RHEL9的包管理工具-y参数表示自动回答yes跳过中途确认。第一次更新数据量比较大等它跑完到这里系统才算是基本就绪。5.4 安装open-vm-tools提升虚拟机体验装桌面版RHEL9的人会发现一个现象窗口大小不能跟随VMware窗口自动调整鼠标在虚拟机和宿主机之间切换时常有延迟卡顿。这是因为系统缺了一套虚拟机增强工具。RHEL9仓库里自带open-vm-tools直接装sudo dnf install -y open-vm-tools安装完成后重启或者执行sudo systemctl enable --now vmtoolsd之后VMware窗口拖到多大虚拟机桌面就自动调整到多大鼠标无缝切换剪贴板共享功能也能用了虚拟机里的桌面体验才真正接近物理桌面。如果装的是最小版系统没有图形界面open-vm-tools照样建议装它还能优化磁盘I/O和网络驱动程序。6. 常见问题与排查技巧实录6.1 虚拟机创建或启动阶段的典型报错开启虚拟机时提示Intel VT-x is disabled in the BIOS这是宿主机BIOS里虚拟化功能没打开。解决方法是重启进BIOS找到Intel Virtualization Technology或SVM ModeAMD平台选项设为Enabled保存重启后再试。注意有些笔记本的BIOS隐藏了虚拟化选项可能要关闭“Secure Boot”才能在BIOS里看到。提示The host does not support virtualizing virtual machines这通常是因为嵌套虚拟化没被开启或者VMware的Virtualize Intel VT-x/EPT选项没勾。在虚拟机的处理器设置里勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”然后重启虚拟机。虚拟机启动卡在黑屏或显示No bootable device found检查两处一是ISO文件是否在CD/DVD驱动器里且勾选了“启动时连接”二是虚拟机的固件类型选错。RHEL9建议选UEFI如果创建时选了BIOS且ISO引导方式不匹配也会出现找不到引导设备的问题。在虚拟机设置里的“高级”选项中改一下固件类型再试。6.2 SSH连接失败问题速查SSH连接时报Connection refused原因是服务端22端口没监听。在虚拟机控制台里检查sshd服务状态和防火墙规则sudo systemctl status sshd sudo firewall-cmd --list-services最常见的组合是sshd没运行或防火墙没放行。如果确认两者都正常用ss -tlnp | grep 22检查端口是否有在听。报Network is unreachable问题是网络不通。分别在虚拟机和宿主机上Ping对方IP不通的话检查VMware的网络模式。NAT模式下虚拟机和宿主机不在同一网段直接SSH连接是不通的需要额外配置端口转发这是新手最容易踩的坑。建议从一开始就选桥接模式或者确认两边IP在同一网段。报Permission denied, please try again密码没错却进不去。如果确认密码正确检查是否误开了密码登录限制或偶尔CAPS键的问题。还要确认用户名确实存在于系统中用whoami看一下当前登录的账户名。有一种隐蔽情况是sshd_config里限制了AllowUsers白名单而你的用户不在名单内检查参考5.5的用户访问控制项。报Connection timed out一般也是网络问题。用ip addr确认虚拟机和宿主机在同一网段ping测试连通还不行就看看宿主机防火墙是否拦截了入站连接VMware的虚拟网卡是否处于已连接状态。6.3 安装过程的杂项坑与处理安装启动时在引导选择界面提示/dev/root does not exist或dracut: FATAL: Cannot mount多半是ISO镜像损坏。重新下载并校验SHA256或换一个USB端口如果用的是U盘安装介质。如果你在虚拟机里也是这个报错重点检查ISO文件所在磁盘路径是否有中文或空格VMware读取路径异常也会导致此问题。安装过程中软件选择页面没有报错但装完系统后发现图形界面没有网络管理图标或没有终端这通常是因为装的是“最小安装”组合默认图形桌面组件不齐全。解决方法是登录命令行模式后用dnf group install Workstation把图形环境补上注意组名带引号防止通配符展开出问题。系统装好后用dnf报containter error提示注册问题可先执行subscription-manager status看订阅状态未激活就按5.3的流程注册或者用dnf --setoptskip_broken跳过部分环境差异依赖。6.4 给新手的几条实操建议装完系统后第一件事是创建快照点击VMware窗口上方菜单“虚拟机 - 快照 - 拍摄快照”命名按容易记忆的格式比如“RHEL9-初始安装完成”。之后每次做完阶段性配置比如SSH密钥登录、静态IP设定再拍一张快照。这样折腾坏了随时回退省掉反复重装的痛苦。SSH会话默认超时时间比较短长时间没操作会自动断开。可以改客户端配置在~/.ssh/config里加一段Host * ServerAliveInterval 60 ServerAliveCountMax 3这条配置的作用是每隔60秒发一个保活心跳包连续3个包没收到响应才判定连接死亡长期挂着SSH会话就不会被闲置超时踢掉。还有一个容易被忽略的小事虚拟机磁盘占用的宿主机空间会越来越大即便你删了一些大文件虚拟磁盘也不自动缩小。VMware提供“碎片整理”和“压缩”功能在虚拟机设置-磁盘的“工具”区域可以操作定期对磁盘里的系统分区做一次fstrim -va再在VMware界面压缩一次虚拟磁盘就能把“膨胀”的存储空间回写出来对宿主机磁盘压力很有帮助。我个人实际操作中的体会是VMware RHEL9这套组合最大的价值不在于装好一个系统而在于给你一个可以随便折腾的沙盒环境。SSH连不上就去查防火墙、查服务状态、查网络模式系统起不来了就回滚快照把这个流程多练几遍对Linux的网络模型、服务管理、权限系统的理解会扎实很多。后面你还可以在此基础上继续扩展装一个Nginx源码编译、配置SQL数据库、用Ansible批量管理集群形成一套完整的“虚拟化基础设施-远程管理-服务部署”的闭环环境这些基础配置SSH、静态IP、防火墙、repo源都是后续进阶动手实验的地基。按我上面这套顺序走一遍把每个检查项和常用坑的位置记在心里后面不管拿到什么Linux服务器上手思路都会快很多。