
咱们今天聊的这件事标题写着“简单练习1”但真上手你会明白从VMware里创建一台虚拟机到把RHEL9装好再让SSH连得通中间能踩的坑一点不比上生产环境少。我自己带过不少新人经常看他们卡在“SSH连不上”“虚拟机黑屏”“分区不知怎么分”这几个坎上其实每一步背后都有很实在的原理弄懂了以后你再装任何Linux发行版基本都是一通百通。这篇内容适合完全没碰过虚拟化的新手也适合装过Ubuntu但没正经玩过RHEL系的朋友。我会把整条链路拆开讲VMware Workstation怎么选、虚拟机创建时那些参数到底调多少、RHEL9安装里容易忽略的坑、SSH从服务端到客户端的完整配置外加我自己实测过的排错经验。你照着做一遍等于把“创建虚拟机→装系统→远程连接”这条基本功练扎实了。1. 环境准备VMware与RHEL9镜像的那些事1.1 为什么选VMware Workstation Pro装机之前先搞清楚工具。市面上的虚拟化方案很多VirtualBox免费开源Hyper-V是Windows自带但如果你想让后续操作更接近企业里的运维习惯VMware Workstation Pro是更稳妥的选择。它的界面逻辑、网络模型、快照管理、克隆功能都和真正的vSphere平台一脉相承你在这里练会的“虚拟网卡”“NAT模式”“快照回滚”以后上服务器环境同样用得上。还有一个现实原因VMware Workstation Pro现在对个人用户免费了。你只要去官网注册一个个人账号就能拿到免费许可证在“帮助→关于”里能看到授权信息。别再去搜什么密钥、激活码那类东西官方免费授权就是最干净的路径也省得装到带毒的精简版。这里多说一句任何来路不明的“破解版”“汉化修正版”都不要碰虚拟机工具本身就带驱动被植入东西以后你装在里面的所有系统都可能跟着遭殃。1.2 RHEL9镜像获取与版本选择RHEL9是Red Hat Enterprise Linux 9的缩写注意它和CentOS Stream、Fedora的区别。RHEL本身是商业发行版想从官网直接下载需要注册Red Hat账号。好消息是Red Hat有针对开发者的免费订阅注册后可以合法下载RHEL9的ISO镜像最多能激活16台机器个人学习和练手完全够用。下载时你会看到不同的ISO类型别选错了DVD ISO完整安装镜像包含了安装程序所需的软件包单机安装选它。Boot ISO最小引导镜像安装时要从网络仓库拉取软件包适合有安装源的环境。Minimal ISO极小镜像任务单一。新手直接下DVD ISO就行体积大概9GB左右。版本号选最新的9.x比如9.4或9.5别纠结小版本9.x的安装流程都一致。另外提醒一句下载ISO时顺便校验一下SHA256校验值Red Hat官网会给出对应值这个习惯后面装任何系统都用得上不只是防文件损坏更是为了保证你拿到的镜像是原版。1.3 宿主机与虚拟化基础检查装虚拟机之前先确认宿主机本身具备虚拟化条件。在Windows的“任务管理器→性能→CPU→虚拟化”里看一眼是否显示“已启用”。如果显示未启用就需要到BIOS/UEFI里打开Intel Virtualization TechnologyIntel叫VT-x或AMD SVM模式。这步不做后面开虚拟机时会提示“需要开启虚拟化”甚至直接报CPU不支持。内存方面就有讲究了。RHEL9最小化安装其实2GB内存就能跑但如果你打算装图形界面或者多开几个虚拟机建议宿主机至少16GB内存起步单台虚拟机分4GB比较舒服。硬盘空间同样别吝啬单台虚拟机系统盘建议至少分配40GB因为RHEL9安装完纯净系统就能吃掉7~8GB后面装软件、日志增长、快照文件叠加空间很快就没了。我自己给虚拟机分配磁盘时习惯按“计划磁盘容量再乘1.5”来预留比如计划40GB就分60GB省得后期扩容麻烦。2. 创建虚拟机新手最容易翻车的几个环节2.1 新建虚拟机向导里的关键选项打开VMware Workstation点“创建新的虚拟机”有两个入口典型典型典型/推荐和自定义。新手点“典型”其实够用但如果你有明确的硬件分配需求我建议直接进“自定义”里面能更清晰地控制每个细节。在“客户机操作系统选择”这一步选择“Linux”版本下拉菜单里选“CentOS 7 64位”或者“Red Hat Enterprise Linux 7 64位”。这里有个有趣的现象VMware的新版本里不一定直接列出“RHEL9”你选RHEL7或RHEL8的64位定义也能装RHEL9因为虚拟机的硬件兼容性并不会因为是9就变化。但要注意如果选成“Red Hat Enterprise Linux 9 64位”已经存在当然更省事没有就选7/8差别不大。真正影响系统识别的是后面的虚拟芯片组和固件类型。还有一点容易被忽略在“处理器配置”里“每个处理器的内核数量”和“处理器数量”这两个值逻辑上对应的是虚拟机看到的CPU拓扑。给RHEL9分配2个处理器、每个处理器2个核心等于给它4个逻辑核心日常操作和编译软件时明显比单核流畅。这里不必纠结物理机的“超线程”VMware会自己调度。2.2 内存、CPU、磁盘分配的经验值很多新人喜欢“越大越好”其实给虚拟机分配资源要讲究性价比也要考虑宿主机自己还活着。以RHEL9为例我给你的建议是资源最小化安装安装图形界面CPU1核2核内存2GB4GB磁盘20GB40GB以上网络NATNAT或桥接这里的逻辑是最小化安装本身就很轻量SSH连接测试用2GB内存跑得稳稳当当你想把桌面环境也装成图形操作内存就得给到4GB否则GNOME桌面会明显卡顿甚至直接图形崩溃。磁盘分配后默认是“单个文件存储”我建议改成“将虚拟磁盘拆分成多个文件”——虽然性能上略有损耗但好处是方便备份和快照管理而且当磁盘里的文件越来越大时宿主机的可用空间不会一下子耗光。另外安装完系统后这个磁盘文件还会继续增长所以再次强调初始分配稍微多给点。2.3 网络模式选择NAT还是桥接VMware的网络模式是新手最容易懵的地方。创建虚拟机时默认选NAT这通常是安全的。但我见过很多人装完系统发现“能上网但宿主机连不上SSH”这就是因为没有理解清NAT模式的下半句。在NAT模式下虚拟机的网络流量通过宿主机IP出去外部看起来就是宿主机在访问网络。虚拟机自己拥有一个子网默认是192.168.xxx.0/24具体看VMware的虚拟网络编辑器。宿主机和一个虚拟网卡VMnet8在这个子网里虚拟机和宿主机能互相通信但局域网里的其他电脑访问不到这台虚拟机。所以只在本机练习SSH连接NAT模式足够。想用手机、另一台电脑连接这台虚拟机用桥接模式让虚拟机直接像一台独立主机一样接入物理局域网获取局域网IP。我建议新手先老老实实用NAT把SSH连通性练好再考虑桥接。NAT模式下的SSH连接不涉及局域网防火墙、路由器绑定等乱七八糟的因素问题范围小排查起来干净利落。3. 安装RHEL9系统分区、软件包与root密码3.1 安装引导与语言选择从VMware里启动虚拟机挂载好RHEL9的ISO镜像后会进入安装引导界面。选择“Install Red Hat Enterprise Linux 9.x”回车开始安装。语言选择这里你可以按习惯选简体中文但我要提醒你生产环境或后续配合文档做事时很多人习惯英文界面因为命令行报错信息、日志、配置文档大多基于英文关键词。你在中文界面下一步步点没问题但如果想系统性学Linux尽量尽早习惯英文排查问题时搜到的资料也更容易对上号。安装概览页面里有“本地化”“系统”“软件”“用户设置”几个区块。重点看几个默认值时区默认是“America/New_York”要改成你所在地区键盘默认是“English (US)”如果用的是中文输入法需求后面还可以调整但服务器一般用US布局就够了。3.2 手动分区与软件包选择安装概览里的“安装目的地”默认是“自动配置分区”这确实方便但我要建议你选“自定义”点进去手动分区。理由很简单自动分区在个人虚拟机里往往很浪费。它会单独划分/home、/var等目录等你系统盘紧张时再想调整就很麻烦。手动分区时对新手我最推荐的经验是/boot1GBext4格式足够。/根分区把剩余空间全部分给根分区xfs格式。/boot/efi如果固件是UEFI系统会自动要求这个分区别删。swap设置为内存大小即可。你分了4GB内存就给4GB swap如果是纯练习环境swap给2GB也行。这样分的逻辑是RHEL9默认的安装软件会让你用LVM卷管理这是一个灵活的分区方案以后可以在LVM组里在线扩容。如果你不想深入学习LVM直接物理分区加根分区搞定个人学习没问题但想贴近企业环境就留个“LVM根卷”的空闲空间后续练习lvextend时再用。软件包选择这里“软件选择”里默认是“带GUI的服务器”如果你纯粹练命令行和SSH选“最小安装”或者“服务器”就行。最小安装只包含核心命令行工具系统干净、安装快、占用小SSH服务在最小安装里默认也是装好的。新手第一次装用“服务器无GUI”是个绝佳平衡有基础的运维工具但没有沉重的桌面环境。3.3 root密码与用户创建设置root密码时RHEL9的强度校验很严格。最少8个字符建议大小写字母、数字、符号混搭。但我想多说一句root密码一定要是你自己能记住的很多人为了过校验随手输一串乱码第二天就忘了然后只能重置单用户模式白白浪费时间。“创建用户”这步一定要勾选“此用户需要管理员权限/设为管理员”这样就得了一个sudo权限的普通用户。以后日常操作用普通用户身份做只有在真正需要的时候才sudo提权或者su切root。这个习惯要养成能让你少踩很多权限混乱的坑。安装完成后点“重启系统”弹出“未重新安装任何Kdump”这类提示时直接忽略不是重点。重启后会看到“License Information”未同意点击进入勾选同意License才算真正完成安装。3.4 安装后的基础配置第一次开机后建议立刻做三件小事更新系统、配置主机名、确认网络。# 切换root sudo su - # 更新系统软件包列表RHEL9实际是dnf dnf update -y # 设置主机名 hostnamectl set-hostname rh9-lab # 查看当前IP ip addr show这里有个坑要提前说RHEL9默认的网络管理方式是NetworkManager如果虚拟机在安装时就没能自动获取IPNAT模式下很正常一般能获取到你可能需要手动配置。查看网卡名通常是ens160或ens192nmcli device status如果网卡状态是“已断开”用下面命令拉起nmcli device connect ens160网络没搞定之前后面SSH就是空中楼阁所以这步一定要确认清楚。好了系统层面基本就绪接下来进入SSH这个重头戏。4. 配置SSH远程连接从失败到成功4.1 RHEL9中SSH服务的安装与启动SSH是Secure Shell的缩写本质是一种加密的远程登录协议。RHEL9默认安装了OpenSSH服务器端但未必开机自启而且防火墙可能没放行这就是很多人“系统装好了却连不上”的原因。先检查服务状态systemctl status sshd如果显示未运行启动并设置开机自启systemctl start sshd systemctl enable sshd顺手确认监听端口ss -tlnp | grep 22看到0.0.0.0:22就是正常监听。如果这里没有输出说明sshd启动失败查看日志journalctl -u sshd -n 50一般情况下问题出在配置语法错误比如改过/etc/ssh/sshd_config把某个参数写砸了。这时可以运行sshd -t这个命令专门检查配置文件语法好用得很报错会直接提示哪一行有问题。4.2 防火墙与SELinux的那些坑RHEL9默认开了firewalld它会拦截外来SSH连接。这就是第二只拦路虎。很多教程直接叫你关闭防火墙但我不想让你养成这个习惯因为生产环境是不可能关防火墙的。正确做法是放行SSH服务# 查看防火墙状态 systemctl status firewalld # 永久放行ssh服务 firewall-cmd --add-servicessh --permanent # 重载配置 firewall-cmd --reload # 确认规则已生效 firewall-cmd --list-all如果后续你改了SSH端口比如改成22222对应的放行操作就变成firewall-cmd --add-port22222/tcp --permanent这才叫有的放矢。然后是SELinux。RHEL系默认开启SELinux这是个安全和麻烦并存的东西。SSH连接本身不太受SELinux影响因为默认就有SSH端口的SELinux策略但如果你修改了默认端口或者自定义了一些配置就可能碰上SELinux拦截。检查当前状态getenforce返回Enforcing就是强制模式。在练习环境里如果你对SELinux不熟可以临时用setenforce 0切到permissive模式但下次重启会恢复。想永久关掉就得改/etc/selinux/config里的SELINUXenforcing为SELINUXpermissive。我的态度是新手阶段可以先permissive把SSH流程跑通等后面有空再回过头学SELinux的定制策略别一上来就和它硬刚。4.3 SSH客户端工具选择与连接测试服务端准备好了客户端这边就简单了。如果你用的是Windows 10以上系统自带OpenSSH客户端直接打开PowerShell或命令提示符ssh 用户名虚拟机IP比如ssh rheluser192.168.111.128第一次连接会提示确认主机指纹输入yes回车然后输密码搞定。这一步能跑通就说明整条链路没问题虚拟机的网卡、IP分配、SSH服务、防火墙放行、账号密码全部正常。如果你想用更顺手的工具推荐几个我实际用过的MobaXterm集成了SSH、SFTP、各种远程工具界面友好粘贴命令也方便。FinalShell国产工具自带网络监控和性能图表排查网络问题直观。VS Code远程开发插件用VS Code的Remote-SSH可以直接在本地编辑器里编辑远程文件、跑终端适合开发场景而且免费。工具之间没有绝对优劣关键在于你要理解它们底层都是同一个SSH协议。有人问Xshell好不好也好但如果你是学生党免费工具优先。4.4 免密登录配置密钥认证密码登录能跑通之后强烈建议把免密登录配好。这不只是省掉打字时间更重要的是密钥认证比密码认证安全得多密码可以被暴力破解而私钥文件基本没法猜。生成密钥对在宿主机上操作ssh-keygen -t rsa -b 4096一路回车默认生成在~/.ssh/id_rsa私钥和id_rsa.pub公钥。然后把公钥传到虚拟机ssh-copy-id 用户名虚拟机IP这条命令会把本地的公钥追加到远端用户的~/.ssh/authorized_keys文件里顺便设置好目录权限。没有ssh-copy-id时也可以手动操作cat ~/.ssh/id_rsa.pub | ssh 用户名虚拟机IP mkdir -p ~/.ssh chmod 700 ~/.ssh cat ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys之后再连接就不需要密码了。我特别提醒这里的权限问题.ssh目录要是700authorized_keys要是600否则SSH会因为权限太开放而拒绝使用公钥这是个踩了无数次的坑。5. 常见问题与排查技巧实录5.1 虚拟机开机蓝屏或黑屏这个问题在VMware里太常见了尤其是新装系统后第一次重启。原因多是虚拟机固件类型、虚拟化设置和系统镜像加载不合适。比如UEFI固件下装了为BIOS准备的分区表就会出现引导失败。排查思路按路径来检查虚拟机的“虚拟机设置→选项→高级→固件类型”是UEFI还是BIOS确保和安装时一致。打开vmx配置文件虚拟机所在目录下的.vmx文件看看有没有firmware efi这样的字段手动调整后重启。如果是“黑屏无输出”试试进入虚拟机时按CtrlAltInsert发送重启指令或者点VMware菜单里的“虚拟机→电源→重置”。实在不行把ISO重新挂载进入救援模式修复引导。5.2 SSH连接被拒绝或超时这是最高频的问题。我把现象和排查手段整理成一张速查表现象大概率原因排查命令Connection refusedSSH服务未启动或未监听systemctl status sshdConnection timed out防火墙拦截或IP不通ping 虚拟机IPPermission denied密码错误或禁用了密码登录确认账号、检查sshd_configHost key verification failed虚拟机重装过指纹变了删除本机known_hosts对应条目连接成功后立即断开服务端配置了AllowUsers或端口冲突查看journalctl -u sshd一个非常有效的通用排查法先在虚拟机的本地终端里运行ssh localhost如果本地都连不上问题出在SSH服务自身本地能连再在宿主机执行telnet 虚拟机IP 22看22端口通不通。逐层缩小范围而不是瞎猜。5.3 网络不通NAT模式的经典故障如果你的虚拟机在NAT模式下没拿到IP用ip addr show发现网卡没有地址先尝试dhclient获取地址或者用nmcli重连网卡。但更常见的情况是VMware的虚拟网络服务卡住了。在Windows服务列表里找到“VMware NAT Service”和“VMware DHCP Service”重启这两个服务。之后再回到虚拟机执行nmcli device connect ens160或者重新启动NetworkManagersystemctl restart NetworkManager这个服务指的是虚拟机的网络管理不是VMware的。别搞混了一个是VMware软件自带的宿主机服务一个是虚拟机系统里的网络服务相同的问题点不少人排查到一半就绕晕了。5.4 安装卡死或分区报错RHEL9安装中途卡在某个百分比最常见的是ISO文件不完整或磁盘空间不够。先在宿主机上检查分配给虚拟机的磁盘剩余空间再看看是否你在安装时选了“安装来源”为网络源导致下载慢。生产习惯上我个人推荐使用本地DVD ISO安装稳定、可控、不受网络波动影响。分区报错大多因为/boot分区太小或者EFI类型不匹配。在手动分区界面把引导分区改成1GB新建分区时选择“Standard Partition”还是“LVM”两种都行但要一致到底别混着来。还有一点给/boot分区留大一点就是为了以后内核更新RHEL9默认的内核数量不会像旧版那样堆积太多但留1GB绝对稳妥。6. 实操心得与后续扩展这套流程走下来你已经掌握了虚拟化环境里最基础也最核心的一环建虚机、装系统、远程连。我实际带了几个新人走这一步平均半小时能跑通但真正融会贯通的人都会继续往下钻。我给自己的练习建议是把步骤拆成“三连”每个环节单独出题。创建虚拟机时试试不同网络模式对SSH连通性的影响。装系统时手动分区和自动分区都做一遍观察LVM卷结构差异。SSH层面把密码登录、密钥登录、修改端口、禁用root登录各配一遍感受安全策略的变化。再往深走你可以用快照功能做实验。装好系统后打一个快照随便折腾配置坏了就回滚这个功能在真实服务器上等价于备份演练虚拟机上练熟了以后上云服务器也不慌。最后分享一个我自己的习惯所有配置文件的改动先备份再修改改完立刻测试测试不过就回滚。比如改/etc/ssh/sshd_config前先cp sshd_config sshd_config.bak然后sshd -t校验最后重启服务。这个习惯不值钱但能救你无数次。加上前面配置密钥、权限、防火墙那几步如果每一步都到了“能说清为什么”的程度你这个“简单练习1”就已经超过一半的入门者了。