Linux虚拟机环境搭建:VMware、CentOS、FinalShell配置
做运维这行十几年我带过的新人里十个人有九个卡在同一个地方环境搭不起来。不是命令不会敲而是虚拟机装不上、网络连不通、SSH 死活连不上一折腾就是一整天热情直接耗光。这篇就专门解决这个事——LinuxVMware、CentOS、FinalShell下载安装这条最经典的新手起跑线我把它拆成四层结构讲清楚宿主机、虚拟化平台、Linux 发行版、远程终端工具。看完你能自己独立搭出一台可用的 CentOS 虚拟机能用图形化终端连上去还能顺手把网络、快照、软件源这些后期会反复用到的东西配置妥当。不管你是刚转行的零基础新人还是想在本机复现一套实验环境的在职开发这套流程都能直接抄作业。我还会把那些文档里从来不写、只有踩过才知道的坑一并放出来比如虚拟化冲突、NAT 网关地址、网卡名变化这些看着小卡起来要命。1. 整体思路为什么新手第一套环境是这台虚拟机1.1 四层结构先想清楚动手才不会乱很多人装环境失败根子上不是操作错而是脑子里没有结构。这套东西其实是四个独立层次任何一层出问题现象都长得很像——连不上装不上。第一层是宿主机也就是你天天用的那台 Windows 或 macOS 电脑它是资源提供方也是最终操作入口。第二层是虚拟化平台VMware 就是这一层它把宿主机上的 CPU、内存、硬盘切出一块模拟成一台假电脑的硬件。第三层是客户机操作系统CentOS 跑在这台假电脑上它以为自己是独占一台机器实际上资源是借来的。第四层是远程终端工具FinalShell 负责让你在宿主机上通过 SSH 协议去敲客户机里的命令。为什么一开始就要把四层分开讲因为排查问题的思路完全依赖这个分层。举个例子你点击连接超时了可能是 FinalShell 配置错第四层可能是客户机没开 SSH 服务第三层可能是 VMware 的 NAT 网络没起来第二层也可能是宿主机防火墙拦了第一层。不分层你只能瞎试分清了你就能从下往上一层一层往上验三分钟定位。我自己的习惯是先ping宿主机再ping网关再telnet 端口最后才看客户端软件这条链路走一遍八成的连接问题当场见分晓。还有一点得提醒虚拟机里的硬盘是一个放在宿主机上的大文件通常是.vmdk。你删虚拟机的时候如果直接删文件夹宿主机上占的空间确实释放了但如果只从库里移除而不删磁盘那块空间会一直躺着几十 G 说没就没。这个细节跟安装本身无关但新手十有八九会中招。1.2 这套组合为什么能成为入门标配选 VMware 而不是别的最直接的理由是门槛低、资料多、行为稳定。它的图形化程度高创建虚拟机是点几下的事配置文件都是向导生成不用你手写 XML。另一个现实原因企业环境里虚拟机管理平台的交互逻辑大同小异先在 VMware 上把虚拟硬件、网络模式、快照、克隆这几个概念摸熟以后换任何平台迁移成本都很低。顺带说一句VMware Workstation Pro 现在个人使用是免费的注册账号就能拿到授权对学习场景完全够用。选 CentOS 的理由更实际教程存量最大。你在网上搜任何一个 Linux 命令的用法十条答案里七八条是 CentOS 或 RHEL 系的命令格式。包管理用yum/dnf配置文件路径固定日志在/var/log服务用systemctl管这套东西学会了往其他发行版迁移不难。而且它和 RHEL 高度同源企业里跑的服务器大概率是同一套体系学完能直接用。FinalShell 这一环很多老手会说不必要直接用系统自带的终端就行。这话对老手成立对新手不成立。它把连接管理、文件浏览、实时资源监控、命令历史放在一个窗口里你不需要记scp的参数就能把文件拖上去不需要开三个终端窗口来回切。降低认知负担这件事对刚开始学的人价值非常大。等你熟练了自然会切回纯命令行但起步阶段用它没有错。1.3 和其他方案对比什么情况下不该走这条路虚拟机不是唯一选择也不是所有场景的最优解。我列个对比省得你走弯路。方案资源占用隔离性上手难度适合场景VMware 虚拟机较高需预留 4G 内存以上完整隔离可随意折腾快照中等系统学习、多机集群实验、需要图形界面双系统独占硬件性能最好物理隔离但切换麻烦高分区有风险长期主力使用、对性能敏感云服务器本机零占用隔离但受网络影响低只需命令行环境、不想折腾本地容器/WSL很低共享内核隔离性弱中等只想跑个服务、不需要完整系统判断标准很简单你需不需要弄坏它。学 Linux 的过程中一定会改错配置、删错文件、装崩系统这时候快照一回滚就恢复如初这种随便造的自由是云主机给不了的——云主机你顶多重装系统数据全丢。所以我的建议是想系统性学就在本机装虚拟机只是临时跑个脚本或者做验证云主机或者容器更省事。还有个坑得提前说如果你电脑上启用了 WSL2、Hyper-V、Windows 沙盒或者内核隔离/内存完整性VMware 有可能直接报此平台不支持虚拟化的 Intel VT-x/EPT。这不是 VMware 坏了是两个虚拟化技术在抢同一份硬件资源。解决办法是在启用或关闭 Windows 功能里把 Hyper-V 相关项关掉重启或者用 VMware 较新版本里的兼容选项。我见过有人为此重装系统的实在没必要。2. 动手前的资源盘点与版本选型2.1 内存和硬盘到底该分多少分配资源这件事新手最容易走两个极端要么抠门给 1G 内存装完卡成幻灯片要么豪爽给 16G宿主机自己卡死。合理的算法其实不复杂。先看宿主机总内存。Windows 本身空闲状态大约吃 3 到 4G浏览器开一堆标签能吃到 6G所以虚拟机内存上限 物理内存 − 6G低于这个数宿主机就开始频繁读交换文件整机变卡。8G 的机器给虚拟机 2G 是稳妥的16G 的机器给 4G 很舒服32G 以上给 8G 完全没问题。再说 CPU。核心数给 1 到 2 个就够了别贪。虚拟机的 CPU 核数是时间片分配不是物理独享给多了反而增加调度开销。有个细节单台虚拟机的虚拟 CPU 总数不要超过物理核心数比如你是 4 核 8 线程给虚拟机 2 核就很好。硬盘按需给但有两个经验值。体系结构学习用 20G 到 30G 够如果要装数据库、Docker、编译环境直接给 40G 到 50G因为后面清空间比重装省事得多。这里有个必须知道的点VMware 默认用精简置备意思是你说给 40G宿主机上只按实际使用量占用不是一上来就吃掉 40G。所以给大一点几乎没有成本只在你真写满的时候才占空间。我一般的建议是直接给 40G别省。分区方案顺带说一下CentOS 安装向导里如果选自动分区它会按规则分。手动分区的话/boot给 1G 足够放内核和引导文件swap按物理内存的规则来——内存小于 2G 时给内存的两倍2G 到 8G 时给和内存一样大8G 以上给 4G 到 8G 就封顶了。剩下的全给根分区/。这个规则是官方推荐的经典配置不是玄学。2.2 版本选择CentOS 7 还是新版本这一条得说清楚因为它直接影响你后面能不能顺利装软件。CentOS 7 已经停止维护了官方仓库不再更新这意味着你装完之后默认的软件源很可能是失效的yum install会报一堆 404 或者超时。CentOS 8 更是早就转向了 Stream 版本。所以现在真实的选型是这样的如果你是为了跟着老教程学基础命令CentOS 7 依然可用但装完必须第一件事换软件源否则你连vim都装不上。命令的用法和文件位置这些知识是不会过时的学这些没问题。如果你是为了搭建一个能长期用的实验环境建议直接用 Rocky Linux 或者 AlmaLinux这两个是 RHEL 的下游重建版命令、配置路径和 CentOS 几乎一模一样教程可以照搬但仓库是活跃的装软件不会卡住。我个人的做法是两套都留一个 CentOS 7 的镜像用来复现老项目的环境一个新版本的用来日常折腾。反正磁盘不贵虚拟机可以有很多台。至于 32 位还是 64 位现在没有悬念一律选 x86_64。位数选错的话装完你会发现某些软件包根本找不到。2.3 下载与完整性校验下载这件事本身没技术含量但有三个细节值得说。第一镜像文件很大普遍 4G 到 10G。用浏览器直接下中途断了就得重来所以要么用支持断点续传的下载工具要么下完之后核对文件大小。第二一定要校验。官方一般会提供SHA256校验值Windows 上用certutil -hashfile 文件名 SHA256就能算出来比对。这一步看着多余但我真遇到过下载不完整导致安装到一半报介质校验失败的情况重下比排查快得多。第三存放路径别有中文和空格。VMware 在某些版本下对路径里的非 ASCII 字符处理不干净容易出奇怪的问题建议统一放一个纯英文目录比如D:\vms。虚拟机软件本身也建议从官方渠道拿安装包签名是完整的别用来路不明的绿色版这类东西改过什么你完全不知道。3. VMware 安装与网络配置的关键动作3.1 安装过程里那几个容易被忽略的选项VMware 的安装基本是下一步到底但有三处值得停一下。第一处是安装位置。默认在 C 盘如果 C 盘紧张可以换到别的盘但注意路径别带中文。虚拟机文件也建议和程序分开放程序在 C 盘虚拟机放 D 盘或者更大的数据盘这样重装系统不会把虚拟机一起带走。第二处是增强型键盘驱动。这个选项默认会装作用是让虚拟机和宿主机的键盘输入互不干扰特别是用中文输入法和快捷键的时候。如果勾了之后宿主机出现输入异常卸载它就行但一般不会有问题。第三处是安装完成后重启。VMware 会装虚拟网卡驱动不重启的话网络组件可能不起来表现为虚拟网络编辑器里看不到 VMnet1 和 VMnet8。这个现象很常见重启一下就好不是装坏了。装完之后我建议做一件事打开编辑 - 虚拟网络编辑器点右下角的更改设置拿到管理员权限确认 VMnet8 存在。这一眼能省掉后面很多麻烦。3.2 三种网络模式到底选哪个这是新手最容易选错的地方选错了就是我能 ping 通它它 ping 不通我或者宿主机能连隔壁同事连不上。用一张表说清楚。模式虚拟机 IP 来源能否上网宿主机能否访问局域网其他机器能否访问典型用途桥接由物理路由器分配和宿主机同网段能能能需要被同事/其他设备访问NAT由 VMware 虚拟 DHCP 分配能能不能单人学习最省心仅主机由 VMware 虚拟 DHCP 分配不能能不能纯隔离实验做网络测试我的默认建议是 NAT。原因很实在桥接模式下虚拟机的 IP 是路由器分配的每次重启可能变而且换一个网络环境比如从家里换到公司 WiFiIP 段全变你之前记的 IP 全部作废。NAT 模式下网段是你自己定的稳定不变写笔记、写配置都对得上。有一个坑必须讲NAT 模式下虚拟机能上网但宿主机以外的东西连不进来包括你的手机、另一台电脑。所以如果你要做手机访问本机服务这种演示就得用桥接。反过来如果只是自己学NAT 是完全够的。3.3 NAT 参数怎么设网关地址为什么是 .2在虚拟网络编辑器里选中 VMnet8能看到几个关键参数我把常见的坑点列出来。子网 IP 建议设成192.168.x.0x 用一个不容易和真实网络冲突的数。怎么判断冲突看你宿主机ipconfig出来的网段比如你连的 WiFi 是192.168.1.x那虚拟机就用192.168.100.0避开就行。冲突的后果是虚拟机可能上不了网而且排查起来非常隐蔽。子网掩码255.255.255.0这个不用改。关键在网关NAT 模式下 VMware 会把自己的虚拟网卡设成.1把 NAT 网关设成.2。这个.2不是随便定的是 VMware 的固定规则。你在虚拟机里配静态 IP 的时候网关必须填这个.2填.1是不通的。我见过太多人在这栽跟头明明ping 192.168.100.1能通就是上不了外网原因就是网关填错了。DHCP 设置里还可以指定地址池范围默认是.128到.254。如果你打算用静态 IP建议把静态地址定在.100到.127这个区间避开 DHCP 池防止地址冲突。这个习惯很好能省掉明明配对了却时好时坏这种诡异问题。3.4 安装阶段可能遇到的报错装完 VMware 第一次启动虚拟机可能遇到几种报错我按出现频率排一下。最常见的是虚拟化没开提示大意是此主机支持 Intel VT-x但虚拟化被禁用。解决办法是进 BIOS 打开 VT-x 或 AMD-V。不同品牌主板的按键不一样进去找Virtualization Technology这一类选项改成 Enabled。第二种是上一节提到的 Hyper-V 冲突。现象是能创建虚拟机但一开机就报错或者卡在启动。在启用或关闭 Windows 功能里关掉 Hyper-V、Windows 沙盒、虚拟机平台这几项重启后再试。第三种是无法打开内核设备之类的权限问题多见于 Windows 家庭版或者杀毒软件拦截。右键用管理员身份运行 VMware 一般能解决如果不行把杀毒软件的实时防护临时关一下再试一次。4. CentOS 安装全过程实录4.1 创建虚拟机时这些参数别乱填打开 VMware 新建虚拟机我走一遍关键选择。类型选自定义高级别用典型因为典型模式会隐藏很多参数。硬件兼容性保持默认。安装来源选稍后安装操作系统这一步很重要——如果选安装程序光盘映像文件VMware 会走简易安装自动帮你分好区、装好桌面你反而学不到东西而且你的密码、分区方案全都不可控。操作系统类型选 Linux版本选对应的发行版名称。如果列表里没有完全匹配的比如新版本系统选一个相近的即可这个设置只影响 VMware 给的一些默认优化建议不影响能不能装。命名和位置名字随便起位置一定选一个空间足够的纯英文路径。处理器给 2 核内存按前面算的给。网络类型选 NAT。I/O 控制器和磁盘类型保持默认磁盘选创建新虚拟磁盘大小给 40G不要勾选立即分配所有磁盘空间——勾了就是立刻吃掉 40G 真实空间没必要。磁盘存储选拆分成多个文件这样迁移的时候方便单个大文件在某些文件系统上复制会慢。最后一步自定义硬件里把新 CD/DVD指向你下载的 ISO 镜像同时确认启动时连接打勾。这一项忘了的话开机就会提示找不到操作系统。4.2 安装向导里的三个关键决策开机进入安装界面选第一项安装带图形界面的安装程序然后等它加载。第一件事是语言和键盘选中文或英文都行选英文更好因为报错信息是英文的你熟悉了以后排错更快。第二件事是安装目的地。这里其实是分区。点进去之后如果只想快速跑起来选自动配置分区就行。如果想练手选我要配置分区按方案来/boot1Gswap按内存规则给/剩下全部。文件系统选xfs这是默认的也是推荐的。分区方案确认之后点完成会弹窗让你接受更改点它。第三件事是软件选择。这个必须说一下默认是最小安装装完是纯命令行没有图形界面。如果你只是学命令行最小安装是最好选择体积小、启动快、要什么装什么。如果你想要桌面环境选GNOME 桌面或者带 GUI 的服务器。初学者我反而推荐最小安装逼着自己用命令行学得快。等熟练了想装图形界面一条yum groupinstall就能补上。然后设置root 密码。这里有个细节如果密码太简单会弹两次确认点完成两次就行。但强烈建议设一个稍微复杂的因为后面开 SSH 之后如果端口暴露了弱密码就是最大的风险点。剩下就是等大概十分钟到二十分钟取决于机器性能。装完点重启。4.3 第一次开机必须做的五件事重启之后进入登录界面用 root 登录。接下来这五件事我建议按顺序做完再开始学别的。第一件确认网络通不通。运行ip addr看网卡有没有拿到 IP。CentOS 7 在 NAT 模式默认是 DHCP一般会自动拿到。如果没拿到运行dhclient手动请求一次。看到192.168.100.x这样的地址就说明网络层通了。第二件让网卡开机自启。这个坑非常经典。CentOS 7 的网卡配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33名字可能是ens33也可能别的里面ONBOOTno是默认值意思是开机不启动网卡你每次重启都得手动启一次。改成ONBOOTyes然后systemctl restart network生效。新版本系统用的是 NetworkManager用nmcli connection modify 连接名 autoconnect yes。如果想固定 IP同一个文件里改BOOTPROTOstatic然后加四行IPADDR、NETMASK、GATEWAY、DNS1。网关填 NAT 的.2DNS 可以填114.114.114.114或者8.8.8.8。改完重启网络ping 网关和ping 外网地址都通了才算真的配好。第三件验证 SSH 服务。运行systemctl status sshd看到active (running)就对了。如果没装yum install openssh-server然后启动并设置开机自启。这一步是 FinalShell 能不能连上的前提。第四件关掉防火墙或者放行端口。实验环境我一般直接systemctl stop firewalld加systemctl disable firewalld省事。但如果你在做安全相关的实验就得用firewall-cmd --add-port22/tcp --permanent加firewall-cmd --reload单独放行。生产环境绝对不能直接关防火墙这个习惯要从学习阶段就分清。第五件打快照。关机或者开机状态都行VMware 菜单里虚拟机 - 快照 - 拍摄快照起个名字叫基础环境。以后无论怎么折腾崩了回滚到这里就是干净的初始状态。这一步是整个流程里性价比最高的动作花一分钟省几小时。5. FinalShell 配置与日常提效5.1 连接配置逐项说明打开 FinalShell左上角新建连接选SSH 连接。主机填虚拟机的 IP端口 22认证方式选密码用户名root密码就是你装系统时设的那个。名称随便起方便识别就行比如CentOS-实验机。第一次连接会弹一个主机密钥确认这是正常的SSH 协议首次连接会记录对方指纹点接受。如果之后你重装了系统指纹变了会再弹一次警告这也是正常的确认是不是你自己重装的就好。连上之后左边是文件浏览器右边是终端下面是资源监控。这个布局对新手很友好你能直接看到 CPU、内存、网络的实时占用跑一个吃内存的命令曲线立刻起来对理解资源这个概念很有帮助。有一个细节值得说如果连接超时先别怀疑 FinalShell。在宿主机上ping一下虚拟机 IP如果不通就是网络层问题回到 3.2、3.3 排查能 ping 通但连不上 22 端口就是 SSH 服务没起来或者防火墙拦了能连上但一直卡在认证多半是密码错了或者PermitRootLogin被改成了no。5.2 把文件传输用顺手FinalShell 最省事的功能是文件拖拽。左边文件区切到目标目录从宿主机窗口直接把文件拖进去它就传上去了。反过来右键文件选下载就能拿回来。这个体验比记scp -r参数舒服太多。但有个权限问题得注意用 root 登录传上去的文件属主是 root权限是 644。如果你传的是个脚本要执行得chmod x。如果你传的是网站文件属主可能需要改成运行服务的用户不然程序读不了。这个坑在部署 Web 项目的时候特别常见明明文件在那儿就是报权限不足。另外大文件传输建议还是用命令行工具图形界面传几个 G 的文件容易中断而且看不到进度细节。5.3 几个提高效率的小习惯第一个习惯命令历史别浪费。终端里按方向键上翻或者输入history | grep 关键词找历史命令。FinalShell 支持命令自动补全输入前几个字符按 Tab。第二个习惯会话保活。默认情况下长时间不操作SSH 会断开。可以在服务端/etc/ssh/sshd_config里加ClientAliveInterval 60和ClientAliveCountMax 3意思是每 60 秒发一次心跳三次没响应才断。这个配置在跑长时间任务的时候很关键不然你一个编译跑到一半连接断了进程跟着挂。第三个习惯善用多标签。FinalShell 可以开多个标签页连不同机器也能对多台机器同时执行命令。等你搭了三台虚拟机做集群实验这个功能能省大量重复操作。6. 踩坑记录与速查表6.1 网络类问题的排查顺序网络问题占了新手问题的七成我总结一条固定的排查链路照着走基本都能定位。第一步虚拟机里ip addr看有没有 IP。没有就是 DHCP 没生效或者ONBOOTno。第二步ping 网关网关就是前面说的.2。不通说明虚拟机到虚拟网络的连接有问题检查虚拟机网络模式是不是 NAT检查 VMnet8 是不是被禁用了。第三步ping 一个外网地址。通网关不通外网就是 DNS 或 NAT 转发的问题检查/etc/resolv.conf里有没有配 DNS。第四步宿主机ping 虚拟机 IP。不通说明宿主机的虚拟网卡有问题可能是 VMware 服务没启动打开服务列表看看VMware NAT Service和VMware DHCP Service是不是在运行。还有一类隐蔽问题IP 冲突。你把静态 IP 设在了 DHCP 池范围内虚拟机拿到地址的瞬间是好的过一会儿 DHCP 把同一个地址分给别的机器两边就都出问题。表现是时好时坏特别难查。解决办法就是把静态地址固定在 DHCP 池之外。6.2 常见报错速查表现象最可能原因处理动作虚拟机开机报 VT-x 被禁用BIOS 未开启虚拟化进 BIOS 打开 Virtualization Technology报此平台不支持虚拟化Hyper-V/WSL2 冲突关闭 Hyper-V 相关功能后重启装完找不到网卡或网卡名变了新版系统网卡命名规则变化用ip addr查实际名称改对应配置文件重启后网络失效ONBOOTno改为yes并重启网络服务能 ping 通但 SSH 连不上sshd 未启动或防火墙拦截查systemctl status sshd放行 22 端口yum install报 404 或超时软件源已停止维护更换为可用的软件源地址终端中文显示乱码字符集不匹配设置LANGen_US.UTF-8或装中文字体上传文件后无法执行缺少执行权限chmod x 文件名虚拟机磁盘越来越满但没存东西快照累积占用空间删除旧快照或清理日志6.3 几条只有踩过才知道的经验第一条快照不是备份。很多人以为打了快照就万无一失实际上快照记录的是相对于基础磁盘的差异快照越打越多磁盘占用会成倍增长性能也会下降。正确做法是保留一两个关键节点比如刚装完配好环境实验做完就删掉中间快照。第二条改配置前先备份。cp 文件名 文件名.bak这一秒钟的动作能在你改崩之后救命。尤其是网络配置和 SSH 配置改错了可能导致你连不上机器那时候只能在 VMware 的控制台里操作体验很差。第三条别在虚拟机和宿主机之间复制粘贴大段命令。看着方便但很容易把换行符、全角空格一起带进去执行报错你还找不到原因。FinalShell 里粘贴前先看一眼或者用cat 文件的方式写脚本。第四条学会看日志。服务起不来第一反应应该是journalctl -u 服务名 -n 50或者tail -f /var/log/messages而不是到处搜。日志里九成情况下直接写着原因比你猜快得多。第五条虚拟机命名和目录结构要规划。一开始就两三台无所谓等你手上有十台虚拟机名字全是CentOS 64 位、CentOS 64 位 的副本你就彻底不知道哪台是哪台了。建议一开始就用用途-系统-编号的命名方式比如k8s-node-01、db-test-02。我自己的习惯是每搭好一台机器就在笔记里记三行IP、用途、备注。半年前配的环境光看虚拟机名字是想不起来的这三行能救你。再补一个关于软件源的实操。老版本系统装完之后默认源基本是废的你换源的时候注意两点一是备份原文件二是换完之后跑一次yum clean all再yum makecache不然缓存里还是旧数据看着换了其实没生效。这个顺序错了你会以为换源失败了反复折腾。最后分享一个小技巧关于虚拟机迁移。如果你想把整套环境拷到另一台电脑别直接复制文件夹——先关机再复制整个目录到新机器上打开.vmx文件就行。开机状态下复制很可能得到一个损坏的磁盘。这个坑我吃过一次几十 G 的数据拷了半小时结果打不开。