☰
VMware虚拟机安装RHEL9并配置SSH远程连接实战指南
2026/10/2 2:50:08 网站建设 项目流程

咱们今天聊的这件事,标题写着“简单练习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 Technology(Intel叫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等目录,等你系统盘紧张时再想调整就很麻烦。

手动分区时,对新手我最推荐的经验是:

  • /boot:1GB,ext4格式,足够。
  • /(根分区):把剩余空间全部分给根分区,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,如果虚拟机在安装时就没能自动获取IP(NAT模式下很正常,一般能获取到),你可能需要手动配置。查看网卡名(通常是ens160或ens192):

nmcli 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-service=ssh --permanent # 重载配置 firewall-cmd --reload # 确认规则已生效 firewall-cmd --list-all

如果后续你改了SSH端口(比如改成22222),对应的放行操作就变成firewall-cmd --add-port=22222/tcp --permanent,这才叫有的放矢。

然后是SELinux。RHEL系默认开启SELinux,这是个安全和麻烦并存的东西。SSH连接本身不太受SELinux影响,因为默认就有SSH端口的SELinux策略,但如果你修改了默认端口或者自定义了一些配置,就可能碰上SELinux拦截。

检查当前状态:

getenforce

返回Enforcing就是强制模式。在练习环境里,如果你对SELinux不熟,可以临时用setenforce 0切到permissive模式,但下次重启会恢复。想永久关掉就得改/etc/selinux/config里的SELINUX=enforcing为SELINUX=permissive。我的态度是:新手阶段可以先permissive,把SSH流程跑通,等后面有空再回过头学SELinux的定制策略,别一上来就和它硬刚。

4.3 SSH客户端工具选择与连接测试

服务端准备好了,客户端这边就简单了。如果你用的是Windows 10以上系统,自带OpenSSH客户端,直接打开PowerShell或命令提示符:

ssh 用户名@虚拟机IP

比如:

ssh rheluser@192.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目录要是700,authorized_keys要是600,否则SSH会因为权限太开放而拒绝使用公钥,这是个踩了无数次的坑。

5. 常见问题与排查技巧实录

5.1 虚拟机开机蓝屏或黑屏

这个问题在VMware里太常见了,尤其是新装系统后第一次重启。原因多是虚拟机固件类型、虚拟化设置和系统镜像加载不合适。比如UEFI固件下装了为BIOS准备的分区表,就会出现引导失败。

排查思路按路径来:

  • 检查虚拟机的“虚拟机设置→选项→高级→固件类型”是UEFI还是BIOS,确保和安装时一致。
  • 打开vmx配置文件(虚拟机所在目录下的.vmx文件),看看有没有firmware = "efi"这样的字段,手动调整后重启。
  • 如果是“黑屏无输出”,试试进入虚拟机时按Ctrl+Alt+Insert发送重启指令,或者点VMware菜单里的“虚拟机→电源→重置”。
  • 实在不行,把ISO重新挂载,进入救援模式修复引导。

5.2 SSH连接被拒绝或超时

这是最高频的问题。我把现象和排查手段整理成一张速查表:

现象大概率原因排查命令
Connection refusedSSH服务未启动或未监听systemctl status sshd
Connection timed out防火墙拦截或IP不通ping 虚拟机IP
Permission denied密码错误或禁用了密码登录确认账号、检查sshd_config
Host 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或者重新启动NetworkManager:

systemctl 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”就已经超过一半的入门者了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询