ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VMware Workstation安装RHEL9虚拟机:从创建到SSH配置的完整实战教程

VMware Workstation安装RHEL9虚拟机:从创建到SSH配置的完整实战教程 搞虚拟机这件事我前前后后折腾了快十年。从最早的VMware 8到后来Workstation 14、16再到现在的17版本换了又换但底层那套思路一直没变一台物理电脑上跑出若干台“假的”电脑然后在里面装各种系统、搭各种环境随用随删、坏了就回滚。这篇文章我打算把一条最经典、也最实用的链路完整拆一遍在VMware Workstation上从零创建一台虚拟机装上RHEL9Red Hat Enterprise Linux 9系统配置好SSH远程连接再做一遍基础环境配置。整个过程适合刚接触虚拟化、不懂Linux的小白也适合以前只用图形界面、从没搞过命令行远程操作的人。我先说结论这套组合是目前学习Linux、模拟服务器环境、甚至给本地开发当沙盒用最稳的方案之一。RHEL9是企业级发行版代表的是“生产环境里真正在跑”的那一套东西VMware Workstation则是最成熟的桌面虚拟化工具对新手极度友好。通过SSH进去操作又能让你提前适应真实服务器“没有屏幕、只有命令行”的工作方式。我会把每一步怎么做、为什么这么做、容易在哪里翻车全部写清楚你可以直接照着敲。1. 方案选型为什么是VMware Workstation RHEL91.1 虚拟化软件怎么选虚拟机软件市面上主流的就是VMware Workstation Pro、VirtualBox、Hyper-V这三款。我自己的选择经历可以当参考最早图省事用VirtualBox免费、安装包小但踩过几次性能坑——磁盘IO明显偏慢批量跑编译任务的时候卡到怀疑人生后来切到VMware同样配置下流畅度直接上一个台阶快照、克隆、网络编辑器的设计也成熟得多。Hyper-V是Windows自带的企业级虚拟化功能强但操作复杂而且它对Linux桌面支持不如VMware顺手普通用户没必要一上来就碰它。VMware Workstation Pro目前对个人用户有免费使用许可直接去官网下载即可不用找破解、不用碰注册机省心。它支持Windows和Linux宿主新版对Windows 11的兼容性也调得不错。还有一点非常关键VMware的虚拟网络编辑器很强大NAT、桥接、仅主机模式随便切后面配置SSH连接和端口转发都靠它这一点是VirtualBox比不了的。1.2 发行版怎么选RHEL9 vs 其他选择选RHEL9而不是Ubuntu、CentOS很多新手可能会问“为什么”。我的理由有四个第一RHEL是Red Hat的企业级Linux绝大多数公司服务器、云厂商镜像、行业软件认证都基于它。学会RHEL/Red Hat系的操作习惯将来去碰CentOS Stream、Rocky Linux、AlmaLinux、Oracle Linux几乎是零成本迁移。第二RHEL9的SELinux默认开启且配置完整你在学习阶段就能接触到“强制访问控制”这套安全模型这在Ubuntu上默认体验不到。第三RHEL9的支持周期长达十年意味着你学会的东西短期内不会过时。第四Red Hat官方提供免费的开发者订阅个人注册后可以合法下载ISO并使用rhel源详细步骤后面讲。如果不想注册Red Hat账号也可以用Rocky Linux或者AlmaLinux替代它们跟RHEL9完全二进制兼容操作命令一模一样只是换了个Logo。我建议新手还是走一遍RHEL9官方流程因为订阅注册本身就是企业里常见的一个操作环节提前熟悉没有坏处。1.3 网络模式与硬件资源配置创建虚拟机之前的资源分配我直接给一套稳妥的配置按这个来基本不会出问题配置项推荐值说明处理器2核编译任务不大2核够用给多了占用宿主资源内存4GB跑图形界面基本服务够少于2GB会卡硬盘60GB系统安装占15GB左右留出快照和软件空间网络模式NAT虚拟机通过宿主机共享上网最省心内存这里强调一下4G是底线。RHEL9带GNOME桌面的安装模式开机就要吃掉1.5G左右如果你还要在虚拟机里跑开发工具、容器之类的建议直接给6G。磁盘60G看起来大但VMware默认是“按需分配”不会立刻占满宿主磁盘所以放心给。网络模式的选择非常重要新手统一推荐NAT。NAT模式下虚拟机处于一个由VMware虚拟出来的内网段通过宿主机上网外部网络访问不到它——这意味着你乱改配置、装错服务都不会影响宿主机所在局域网里的其他设备安全系数高。桥接模式则是让虚拟机直接“插”到你家路由器上跟宿主机平级虽然也能联网但虚拟机如果中了恶意服务局域网里其他人可能受牵连。仅主机模式适合纯实验但虚拟机上不了外网学习阶段不建议。2. 创建虚拟机与RHEL9安装全程2.1 新建虚拟机的关键选项打开VMware Workstation点击“创建新的虚拟机”选择“自定义高级”可以更精细地控制参数。到“安装客户机操作系统”这一步重点来了选择‘稍后安装操作系统’不要选“安装程序光盘映像文件”。原因是后者会让VMware自动检测镜像并帮你套用一套默认设置有时候会选错系统类型导致后面VMware Tools、分辨率、网卡驱动匹配出问题手动指定反而干净利落。客户机操作系统类型选“Linux”然后版本选到Red Hat Enterprise Linux 9 64-bit。如果你的VMware版本较老没有这个选项可以选“Other Linux 5.x kernel 64-bit”但最好还是把VMware升到17.5以上。固件类型选“UEFI”RHEL9对UEFI支持得很好了而且UEFI引导比传统BIOS更接近当前云服务器真实环境。处理器和内存按上面表格设网络选NAT。磁盘这里有个细节虚拟磁盘类型选“NVMe”还是“SCSI”VMware默认会推荐SCSILSI Logic兼容性最好但如果你之后要做高性能IONVMe在RHEL9里的驱动支持非常完善选NVMe也完全没问题。我实际测过两者装系统都没毛病新手不用纠结。“自定义硬件”界面里把“新CD/DVD”指向你下载好的RHEL9 ISO镜像文件确认“启动时连接”勾选。同时检查一下“打印机”设备默认会添加一个虚拟打印机建议直接移除省得每次开机都弹提示。2.2 从启动到落地的安装过程启动虚拟机进入RHEL9引导菜单选择第一项“Install Red Hat Enterprise Linux 9.x”等它加载进入图形安装界面。前两页语言选择没什么好说的自己看得懂就行中英文都不影响最终结果。真正要动手的是“安装摘要”页面时间与日期地区选“亚洲/上海”否则系统时间和宿主机对不上后面日志排查会疯掉。软件选择这里决定了系统默认装多少东西。如果你打算全程用SSH命令行操作选“最小安装”最干净装完只有300多个包系统轻、无图形界面负担如果你想有桌面环境兜底选“带图形界面的服务器”。我的建议新手选“带图形界面的服务器”出问题时至少能打开浏览器查资料、用图形工具辅助判断等以后熟练了再追求极简。安装目的地进入“自定义”分区方案。我习惯给四个分区简单直观分区大小挂载点说明/boot1024MB/boot引导分区给1G足够/30GB/根分区系统文件和软件都在这/home20GB/home用户数据单独放重装系统不丢swap4GBswap交换分区内存不够时的兜底空间这里多说一句生产环境一般会用LVM逻辑卷管理这样以后扩容方便新手用标准分区先跑通流程即可不要一上来就给自己上难度。网络和主机名点进去把左上角以太网开关打开DHCP模式主机名改成类似rhel9-dev这种有辨识度的名字。这里设好之后后面SSH连接会用到。Root密码与用户Root密码设复杂一点同时创建一个普通用户勾选“让此用户成为管理员”。日常操作就用这个普通用户需要提权时加sudo。全部设置好点“开始安装”进度条走完重启系统。第一次进入系统后接受许可协议Kdump这个功能新手直接关掉即可它用于内核崩溃调试占用预留内存实际学习场景用不上。RHEL9首次登录还会提示系统未注册这个放到下一节处理。2.3 安装后的首轮初始化进入系统后第一件事是检查网络通不通。直接在图形终端里执行ip addr show如果能看到类似192.168.x.x的地址说明NAT网络正常。再试ping baidu.com能通说明DNS解析也没问题。接下来是RHEL9最特别的一个坑默认没有任何可用的软件源。因为RHEL9的dnf源指向Red Hat订阅服务器不注册的话执行dnf install会直接报“没有匹配的软件包”。解决办法有两种二选一第一种是注册Red Hat开发者订阅。去官网注册一个开发者账号然后在虚拟机里运行sudo subscription-manager register --username 你的邮箱 --auto-attach执行后会让你输入密码完成自动订阅。之后dnf源就是可用的官方源装什么软件都顺畅。第二种是不注册订阅改用本地ISO搭一个临时源。把RHEL9安装ISO再挂载到虚拟机光驱然后创建repo文件即可。这个方法适合不想留账号信息的人后面第4节我会给出具体配置代码。第一轮初始化还建议做一件事安装open-vm-tools这是VMware Tools的开源版本负责虚拟机分辨率自适应、剪贴板共享、拖拽文件等功能。RHEL9默认可能没有装全注册好订阅后执行sudo dnf install -y open-vm-tools装完重启一次图形界面窗口就能自动适配VMware窗口大小体验瞬间正常了。3. SSH远程连接与网络配置3.1 开启SSH服务并放行防火墙RHEL9最小安装默认可能没装OpenSSH Server带图形界面的版本一般会装上。不管哪种都先确认一下rpm -q openssh-server如果提示未安装执行sudo dnf install -y openssh-server。然后启动服务并设置开机自启sudo systemctl enable --now sshd这时在虚拟机里先自测一下ssh localhost能连上说明sshd正常。但注意RHEL9默认防火墙firewalld是开启的它会挡住外部SSH连接所以必须放行。执行sudo firewall-cmd --permanent --add-servicessh sudo firewall-cmd --reload查看虚拟机IPip addr show | grep inet记下ens160也可能是ens192网卡上的192.168.x.x地址。到这里SSH服务端已经就绪接下来就是客户端的事了。3.2 SSH客户端选择与连接实操Windows用户在SSH工具上有不少选择我按推荐顺序排一下工具优点适合场景Windows Terminal 系统自带ssh零安装轻量偶尔连一次MobaXterm自带文件管理器、X11转发多标签日常运维强烈推荐Xshell国内用户多免费版够用习惯用Xshell的人FinalShell中文界面、自带监控图表新手入门如果你只是尝鲜最简单的方式是直接在Windows的CMD或PowerShell里敲ssh 用户名192.168.x.x第一次连接会提示确认主机指纹输入yes回车然后输入密码就进去了。确认指纹这一步的含义是防止中间人攻击——指纹匹配则说明你连的就是那台虚拟机不是伪装的服务器这个习惯要保持。Mac用户更简单打开终端执行同样的ssh命令即可。Linux也一样。这里教大家一个让连接更稳定的技巧在VMware虚拟网络编辑器里设置NAT端口转发。因为NAT模式下虚拟机网段是VMware分配的重启后IP不一定保持原来的尤其是DHCP租约到期重续之后每次查IP很烦。解决办法是点VMware菜单“编辑 - 虚拟网络编辑器”选中VMnet8点击“NAT设置”添加一条端口转发规则——主机端口设为2222虚拟机IP地址填当前虚拟机IP端口22。保存后以后从宿主机连接直接ssh -p 2222 用户名127.0.0.1这样虚拟机IP再怎么变只要通过宿主机自身IP加端口2222总能连到虚拟机。这也是不求人、不依赖路由器端口映射的本地开发绝佳方案。3.3 配置静态IP与免密登录端口转发虽然解决了连接稳定性问题但虚拟机内部的IP如果频繁变动转发规则里的“虚拟机IP地址”就得跟着改治标不治本。更彻底的做法是给虚拟机配置静态IP。RHEL9里网络配置默认由NetworkManager接管配置文件在/etc/NetworkManager/system-connections/下跟以前老CentOS的ifcfg-eth0完全不同。千万别再去改/etc/sysconfig/network-scripts/目录下的文件了RHEL9里已经废弃改了不生效还容易把自己绕晕。用nmcli命令来配先看连接名称nmcli connection show输出类似ens160或Wired connection 1假设叫ens160然后执行sudo nmcli con mod ens160 ipv4.addresses 192.168.x.100/24 sudo nmcli con mod ens160 ipv4.gateway 192.168.x.2 sudo nmcli con mod ens160 ipv4.dns 223.5.5.5 8.8.8.8 sudo nmcli con mod ens160 ipv4.method manual sudo nmcli con up ens160注意网关地址必须和VMware NAT模式的网关一致。怎么看回到虚拟网络编辑器选中VMnet8能看到“子网IP”和“NAT设置”里的网关IP默认通常是192.168.xxx.2。如果你的宿主网络环境特殊以虚拟网络编辑器实际显示为准。DNS我用的是阿里公共DNS223.5.5.5国内解析速度快你也可以换114.114.114.114。最后再配一个非常重要的东西SSH免密登录密钥认证。为什么要搞这个一是更安全——密码登录容易被暴力破解密钥对几乎无法暴力撞库二是方便——以后连服务器不用每次输密码。在宿主机上执行ssh-keygen -t ed25519一路回车生成密钥对然后把公钥推送到虚拟机ssh-copy-id 用户名192.168.x.100如果系统没有ssh-copy-id命令就手动把~/.ssh/id_ed25519.pub内容追加到虚拟机~/.ssh/authorized_keys文件末尾。密钥推上去之后再在虚拟机里修改sshd配置关闭密码登录sudo vi /etc/ssh/sshd_config找到并修改这三项PermitRootLogin prohibit-password PubkeyAuthentication yes PasswordAuthentication no然后重启服务sudo systemctl restart sshd改完PasswordAuthentication为no之后一定要先在另一个终端窗口测试一次密钥登录是否可用确认能进去再关掉当前连接。如果配置错了你可能会被锁在服务器外面只能回VMware控制台手动改回来折腾半小时。4. 安装后的基础配置与优化4.1 软件源与包管理先解决dnf无源问题RHEL9默认没有可用的软件源这个最卡新手的问题必须优先解决。如果你已经用subscription-manager注册了开发者订阅那直接就能dnf install了。注册后可以先执行sudo dnf clean all sudo dnf makecache让源缓存刷新一下。然后测试安装一个工具sudo dnf install -y vim wget git bash-completion net-tools如果没注册订阅就搭本地ISO源。把RHEL9 ISO挂到虚拟机光驱——在VMware“虚拟机 - 可移动设备 - CD/DVD”里选择“使用ISO映像文件”然后在虚拟机内执行sudo mkdir -p /mnt/cdrom sudo mount /dev/cdrom /mnt/cdrom创建一个repo文件sudo vi /etc/yum.repos.d/local.repo内容如下[BaseOS] nameBaseOS baseurlfile:///mnt/cdrom/BaseOS gpgcheck0 enabled1 [AppStream] nameAppStream baseurlfile:///mnt/cdrom/AppStream gpgcheck0 enabled1保存后执行sudo dnf clean all sudo dnf makecache注意本地ISO源只能装光盘里自带的软件包版本可能比在线源旧而且装完新软件后系统更新无从谈起。所以这只适合临时应急长期使用还是建议注册订阅或者换用Rocky Linux这类自带公开源的兼容发行版。4.2 时区、主机名与安全策略调整包管理通了之后一些系统级的基础配置也要顺手做掉。修改时区为上海sudo timedatectl set-timezone Asia/Shanghai设置主机名sudo hostnamectl set-hostname rhel9-dev修改/etc/hosts把这台机器自身解析加上防止部分服务因为主机名解析慢而启动异常sudo vi /etc/hosts在文件末尾加上192.168.x.100 rhel9-dev然后说说SELinux。很多人的第一反应是“SELinux太烦直接关掉”。这个做法我不反对但得分场景。测试环境、学习环境关掉或设成permissive完全没问题省得老是碰到“明明配置正确但就是访问被拒”的坑但如果以后要上生产我强烈建议保持enforcing并学会看ausearch -m avc日志定位问题。临时切换SELinux模式sudo setenforce 0永久修改需要编辑/etc/selinux/configsudo vi /etc/selinux/config把SELINUXenforcing改成SELINUXpermissive建议用permissive而不是disabled理由是——保持文件标签和进程域不彻底失效将来你想重新开启时不需要重新打标签整个文件系统。4.3 快照与克隆为折腾兜底这一步是虚拟机独有的、物理服务器没有的“后悔药”一定要养成习惯。刚装完系统、注册好订阅、把基础软件配齐之后回到VMware界面点击“虚拟机 - 快照 - 拍摄快照”给当前状态命个名比如“系统全新基础配置完成”。之后你再装各种奇奇怪怪的包、乱改配置、练内核升级折腾挂了也不用重新走一遍安装流程直接“恢复到该快照”一分钟回到干净状态。快照保存的位置在虚拟机的.vmsd快照描述文件里它本身会占用额外磁盘空间所以日常操作中不要频繁拍“临时快照”存着不删定期整理只保留几个关键节点。克隆操作跟快照配合使用效果更佳。比如你要搞集群实验需要三台RHEL9不需要装三遍系统在虚拟机关机状态下右键“管理 - 克隆”选“链接克隆”省空间即可。但克隆出来的虚拟机要改三处主机名、IP地址、网卡UUID——因为在克隆时网卡的MAC和连接配置也被复制了导致克隆机可能起不来网卡。解决办法是克隆后先执行sudo nmcli connection delete ens160 sudo nmcli connection add type ethernet ifname ens160 con-name ens160 ipv4.method auto sudo systemctl restart NetworkManager重新生成连接配置后再按前面第3.3节的方法设静态IP。5. 常见问题排查速查表到这里核心流程基本走完了。我把这些年给别人排障时碰到最多的问题整理成一张速查表配合排查思路使用能省掉大量网上搜索的时间。5.1 虚拟机启动与安装类问题现象可能原因解决办法VMware提示“无法连接到虚拟机”权限不足或Hyper-V冲突以管理员身份运行VMware控制面板关闭“Windows虚拟机监控程序平台”和Hyper-V后重启升级VMware 17.x虚拟机安装过程中蓝屏/重启处理器虚拟化引擎设置不当虚拟机设置“处理器”中取消勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”确认宿主BIOS中开启VT-d安装界面卡在“Starting installer”ISO镜像损坏或VMware版本过旧校验ISO校验和升级VMware Workstation到17.5以上装完系统分辨率很怪缺VMware Tools/open-vm-toolssudo dnf install -y open-vm-tools后重启虚拟机内鼠标卡顿、剪贴板不通同上确认open-vm-tools-desktop也装了5.2 SSH连接与网络类问题现象可能原因解决办法ssh: connect to host ... port 22: Connection refusedsshd没启动或防火墙未放行systemctl enable --now sshdfirewall-cmd --add-servicesshSSH能连但一直要密码密钥登录失败authorized_keys权限不对或PasswordAuthentication配置冲突检查~/.ssh目录权限为700、authorized_keys为600sudo systemctl restart sshd密钥登录时提示Permissions 0644 for xxx.pem are too open私钥文件权限过大Windows上icacls收紧权限Linux上chmod 600私钥宿主机能ping通虚拟机但SSH超时RHEL9防火墙拦截22端口NAT网段IP变了确认firewall-cmd --list-services里有ssh重新查看虚拟机IP虚拟机重启后IP变了SSH连接失效DHCP租约变化按第3.3节配置静态IP或使用VMware NAT端口转发SSH连接一断开正在跑的node服务就停了终端会话收到SIGHUP被终止使用tmux或nohup方式启动服务防止随会话退出从Windowsssh命令连接中文乱码客户端和服务端编码不一致SSH客户端设置UTF-8RHEL9默认UTF-8基本不会遇到出现乱码多半是用了老旧工具排查问题时有一个通用思路先看虚拟机内部状态再看网络路径最后看客户端工具。比如“连不上SSH”这个问题先确认sshd在不在跑systemctl status sshd再确认防火墙有没有放firewall-cmd --list-all最后在宿主机执行telnet 虚拟IP 22看端口通不通一层一层锁范围。不要一上来就重启虚拟机那是最后手段。我自己在这套流程里踩过最深的一个坑就是给RHEL9配上静态IP之后发现宿主机连不上排查半天才发现网关写错了——我记得的是VMware默认网关192.168.111.2但实际虚拟网络编辑器里子网已经被我改成了192.168.200.0/24网关自然就不对。所以这里特别叮嘱一句一切以虚拟网络编辑器里实际显示的IP段和网关为准不要背网段的默认值。另外还有个小技巧RHEL9里查看系统日志、排查服务异常时别只盯着/var/log/messages现在很多关键日志都在journalctl里journalctl -u sshd -n 50 --no-pager这条命令可以快速看到sshd最近50行日志认证失败、密钥拒绝、防火墙拦截都能在这里找到线索。整个项目做到最后你会发现真正花时间的不是“装系统”这一步而是“怎么让系统顺手”的过程。我个人的习惯是RHEL9装完后的第一件事永远是打快照然后再开始任何配置。这个习惯帮我省下的时间足够我再装十次系统了。另外一个值得坚持的做法是——拿到一台新虚拟机先用SSH连进去而不是直接开VMware控制台。因为控制台里鼠标键盘体验实在算不上舒适而且SSH连接过程本身就是一次网络排障演练网卡没起、防火墙没放、服务没启都会暴露在连接过程里做一遍就多熟练一分。
返回列表