
如果你准备零基础入行SRE云计算运维第一座绕不过去的山就是本地建一套能反复折腾的Linux环境。我自己在这个阶段踩过不少坑最后发现最稳的路子还是VMware装Ubuntu虚拟机——既有接近真实服务器的操作手感又不怕搞坏快照一拍随手还原。这篇笔记把我从下载安装到环境可用的完整过程记录下来新手可以直接照着走。需要说明的是虽然SRE站点可靠性工程现在被讲得很玄乎但它落在日常工作上核心还是Linux系统操作、脚本自动化、监控告警、故障排查这一套。而这一切的前提是你得有一台随时可以折腾、折腾坏了也不心疼的实验环境。虚拟机刚好满足这个需求也是我目前认为零基础成本最低的入门方式。1. 环境方案选型为什么是VMware加Ubuntu1.1 先从SRE的工作日常倒推学习路径我在带新人的时候经常说一句话别急着背那些花哨的容器编排概念先把Linux系统玩熟。SRE和传统运维最大的区别在于用软件工程的方式解决运维问题但落到执行层面你依然要面对命令行、系统服务、网络配置这些基础能力。一个真实的SRE工作场景是这样的线上服务CPU飙高你得登录服务器排查是哪个进程占了资源看看日志有没有报错临时写个脚本采集指标再决定是重启服务还是扩容。这一套动作下来每一步都离不开对操作系统本身的理解。所以零基础入门SRE第一课必然是环境搭建第二课是Linux基础第三课才是脚本化和自动化。但我见过太多人卡在第一课。有人为了学Linux直接给主力电脑装了双系统结果上课要用Windows软件时来回重启学习热情三天就磨没了。还有人花几十块钱买了一台云服务器配置低不说遇到网络问题还要对着厂商工单干瞪眼。这些方案不是不行而是对零基础学习者来说成本和风险都偏高。虚拟机的思路完全不同。它是在你现有的操作系统里跑一个“虚拟电脑”这台虚拟电脑想开就开想关就关里面随便折腾坏了就回滚到之前的快照状态。等你练熟了一套操作再去看真实服务器会发现除了硬件信息变样之外命令和逻辑几乎完全一致。这也是我推荐虚拟机作为SRE入门第一站的根本原因。1.2 虚拟机、WSL、云主机到底怎么选这几年可选的学习环境其实变多了我给一个简单的对比表格你在选择时可以对照自己的情况。方案优点缺点适合场景VMware虚拟机环境隔离、可快照、模拟真实服务器占用本地资源、需要下载系统镜像SRE/Linux系统学习、服务搭建练习WSLWindows子系统启动快、与Windows文件互通方便网络行为不完全等同真实服务器、systemd支持烦人写代码、跑脚本、快速测试命令云服务器公网可达、配置灵活按量付费、资源有限、环境搞挂了不好恢复部署线上服务、公网访问测试物理机安装Linux性能最好、体验最真实切换系统麻烦、风险大、不便携带对Linux已经比较熟悉的进阶用户如果你主要目的是学习Linux和搭建服务虚拟机是综合成本最低的选择。WSL更偏向程序员日常开发用它在文件系统和网络模式上做了很多虚拟化适配和真正的服务器行为有差异早期用它学系统管理容易被诡异问题绕晕。云服务器则是以后必须掌握的但零基础阶段没必要急着付费先把本地的虚拟机玩明白再上云会顺手得多。在虚拟机软件里我优先推荐VMware Workstation Pro。它比VirtualBox的兼容性更稳定对硬件资源的调度也更高效而且现在个人用途已经免费不需要去找乱七八糟的破解授权。至于版本新版本功能更多但如果你的电脑配置偏旧往下选一个稳定的老版本也完全够用核心功能不影响。1.3 Ubuntu系统版本怎么选Linux发行版很多CentOS、Debian、Ubuntu是三大主流。CentOS因为版本策略调整很多人在迁移到其他发行版而Ubuntu因为资料多、社区活跃、软件包新这些年一直是入门首选。你在搜索引擎里提问十个回答里有八个是Ubuntu相关的操作这对新手极其友好。具体版本我建议选LTS长期支持版比如当前主流的22.04或24.04。LTS版本会获得长达五年的安全和维护更新你不用频繁折腾系统升级。我自己的虚拟机用的是24.04整体稳定软件源里的软件也比较新适合作为学习环境。镜像下载一定要去官网不要随便从第三方网站下载防止镜像被植入恶意代码。Ubuntu官网有中文页面下载速度在不同网络环境下差别很大如果官网慢可以找国内高校或云厂商的镜像站下载但下载后尽量核对一下官方发布的SHA256校验值这是个好习惯以后生产环境拉文件也要这么做。2. 实操前准备VMware安装与虚拟硬件规划2.1 VMware Workstation Pro安装全流程VMware Workstation Pro现在个人免费这一变化对学习者特别友好。安装包从官网下载就行注意区分Windows版本和Linux版本别下错了。双击安装包后基本一路Next但有两个细节值得留意。第一安装路径尽量不要带中文和空格有些后续操作在识别路径时会出诡异问题虽然概率不高但没必要给自己埋坑。第二安装组件里的“增强型键盘驱动”建议选上它能更好处理某些特殊的键盘输入场景对后面在虚拟机里输命令有帮助。另外安装过程中如果提示需要重启电脑就按要求重启别偷懒。安装完成后打开VMware第一件事是检查软件是否正常授权为个人免费版。新版本在安装时会引导你选择用途如果提示需要许可证密钥确认你下载的是Workstation Pro而不是Workstation Player然后把界面里关于“个人使用”的选项激活就好。以后如果提示版本到期去官网看看最新版本升级即可。2.2 虚拟机的硬件配置该怎么规划创建虚拟机前先对你的物理机资源有个数。虚拟机不是凭空变出硬件的它要占用宿主机真实的CPU、内存和磁盘空间。一个基本原则是分配给虚拟机的资源不能影响宿主机正常使用否则学习时整个电脑都卡体验非常糟糕。对于Ubuntu桌面版虚拟机我推荐的配置是CPU给2核内存给4GB磁盘给50GB。这个配置跑学习环境绰绰有余也留出了一定余量。如果你的物理机内存只有8GB那虚拟机内存就降到2GB安装时选择轻量一点的Ubuntu服务器版或者带轻量桌面环境的版本避免内存不足导致整个系统卡死。磁盘这里说一个关键点虚拟机的磁盘文件是动态增长的。你分配50GB并不是创建时立刻占用50GB而是随着虚拟机内部数据增加逐渐变大。所以你的物理磁盘至少有50GB以上的空闲空间才建议创建。另外虚拟磁盘文件不要放在C盘系统盘找个空间大的分区专门放虚拟机文件后续快照和扩容都方便。2.3 网络模式选择NAT为什么比桥接更适合新手VMware的网络模式里最常用的是NAT和桥接两种它们决定了虚拟机在局域网里的“身份”。桥接模式相当于虚拟机直接连到你的路由器上它有自己的局域网IP其他设备可以直接访问它看起来就像一台独立的电脑。NAT模式则是虚拟机躲在宿主机后面宿主机给它分配一个私有网段的IP虚拟机通过宿主机去访问外网。我建议新手学习阶段用NAT模式原因有三个。第一NAT模式下的虚拟机不受宿主机所在网络环境变化的影响你在家里、公司、咖啡馆只要宿主机能上网虚拟机就能上网网络环境变化不用重启网卡。第二NAT模式下的虚拟机对外不可见安全性好学习时各种乱配服务也不容易暴露到局域网。第三等你要搭建对外访问的服务时再用桥接模式也不迟那时候你对网络配置已经有了基本概念。记住在虚拟机上不要一上来就挑战复杂网络配置。先把系统跑起来能上网能SSH连上去就已经成功了一大半。3. 从创建虚拟机到系统安装完成3.1 新建虚拟机向导的每一步怎么填打开VMware点击“创建新的虚拟机”选择“自定义高级”可以让你看到更多底层选项对学习有好处。也可以选“典型”模式关键选项基本被隐藏了适合追求简单的人。虚拟硬件兼容性保持默认即可。在“安装客户机操作系统”这一步选择“稍后安装操作系统”不要选择“安装程序光盘映像文件”。为什么如果你直接把ISO镜像文件挂载上去VMware会用简易安装模式自动装系统虽然快但会跳过很多交互选项而新手恰恰需要在这些交互选项里理解系统安装的整个过程。操作系统类型选择Linux版本选择Ubuntu 64位。处理器配置给2个核心内存分配4GB网络类型选择NAT。I/O控制器和磁盘类型保持默认。磁盘创建选择“创建新虚拟磁盘”容量给50GB勾选“将虚拟磁盘存储为单个文件”。最后一步点击“自定义硬件”在左侧选择“处理器”勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”这个选项这能让虚拟机里的系统运行得更顺畅。关于3D加速和声卡Ubuntu桌面版用不上3D加速不用勾选。声卡如果不需要可以移除减少不必要的中断。显示器配置保持默认等装好系统后再根据实际显示效果调整分辨率。3.2 从ISO镜像安装Ubuntu系统的详细步骤创建好虚拟机后在VMware主界面双击虚拟机然后点击“编辑虚拟机设置”在CD/DVD选项里挂载你下载的Ubuntu ISO镜像文件勾选“启动时连接”。然后启动虚拟机进入安装引导界面。Ubuntu的安装界面比较友好选择“Install Ubuntu”进入安装流程。语言选择简体中文键盘布局选择English (US)或者Chinese这个后面可以随时改。在安装类型界面一定要选择“清除整个磁盘并安装Ubuntu”这个选项在虚拟机里是安全的它只会清空虚拟机这块虚拟磁盘不会影响宿主机上的任何文件。我看到很多人在这里犹豫半天其实完全没必要你给虚拟机分配的磁盘就是一块虚拟出来的空硬盘系统安装过程本身就是对它进行格式化。创建用户时用户名不要用root最好是一个带sudo权限的普通用户比如你名字的拼音缩写。密码设置成自己能记住但又不太简单的以后SSH登录、sudo提权都要用。系统会询问是否开启加密主目录这里建议不开加密主目录会在以后调试服务时造成文件权限混淆对学习阶段弊大于利。整个安装过程大概需要10到20分钟取决于你的电脑性能。装完后系统会自动重启重启时记得在虚拟机设置里把ISO镜像的“启动时连接”取消掉否则会再次进入安装界面。3.3 安装完成后的第一轮系统设置系统重启进入Ubuntu桌面后第一步不是急着装软件而是先把基础环境理顺。先执行系统更新打开终端运行下面的命令sudo apt update sudo apt upgrade -y这个过程会更新软件源索引并升级所有已安装软件包。第一次升级时间可能比较长但这是必须的因为ISO镜像里的软件包版本通常落后于软件源里的最新版本。接下来安装VMware Tools。老版本虚拟机需要单独安装VMware Tools新版本Ubuntu直接安装open-vm-tools就行这是一个开源的虚拟机工具包提供剪贴板共享、拖拽文件、自适应分辨率等功能。命令如下sudo apt install -y open-vm-tools open-vm-tools-desktop装完重启系统你会发现虚拟机和宿主机的剪贴板可以互通了窗口分辨率也能跟着宿主机窗口大小自动变化。这一步做完使用体验会提升一个档次。中文输入法是另一个高频需求。在设置里找到“Region Language”点击“Manage Installed Languages”系统会提示安装语言包安装完成后把输入源切换成中文拼音即可。如果对输入体验要求高可以考虑装搜狗输入法但需要去官网下载deb包手动安装中间还可能遇到依赖问题新手可以先养成自带的输入法等功能熟悉了再去换。3.4 配置软件源国内镜像站怎么换Ubuntu默认的软件源服务器在国外直接使用的话下载速度会非常慢这个卡过无数新人。解决方案是换成国内镜像源。在终端里编辑软件源配置文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list以上命令把默认的源地址替换成阿里云镜像地址。不同Ubuntu版本的源配置格式略有差异22.04及之后的版本用的是deb822格式配置文件路径可能不同如果在sources.list里没找到内容去/etc/apt/sources.list.d/目录下找ubuntu.sources文件把里面的archive.ubuntu.com替换成mirrors.aliyun.com。替换完后再运行一次update和upgrade你会感受到速度的变化。换镜像源这个操作在生产环境里也很常见但日常工作中要优先确认公司的安全规范是否允许使用外部镜像。自己学习阶段怎么方便怎么来但养成“先看规范再动手”的习惯本身就是SRE的必备素养。4. 打通宿主机到虚拟机的SSH通道4.1 为什么要配静态IP虚拟机装好后默认是通过DHCP自动获取IP地址的这意味着每次虚拟机重启IP地址都可能变化。对学习来说IP老是变会带来两个麻烦一是你的笔记本、SSH配置都要跟着改二是写脚本时如果硬编码了IP脚本动不动就失效。解决思路是给虚拟机配置一个固定的静态IP。NAT模式下VMware会维护一个虚拟子网一般情况下这个子网的网关地址是192.168.x.2也就是宿主机虚拟网卡的地址。我先用下面命令查看当前虚拟机获取到的IP。ip addr show找到类似192.168.x.x的地址记住网段信息。然后编辑netplan配置文件Ubuntu 22.04及更高版本用netplan管理网络sudo nano /etc/netplan/01-network-manager-all.yaml在这个文件里写入以下内容注意缩进格式network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.xxx.100/24 routes: - to: default via: 192.168.xxx.2 nameservers: addresses: - 223.5.5.5上面地址里的xxx要根据你虚拟机实际网段改.100这个尾号可以自己定只要不跟网段里其他设备冲突就行。网关指向VMware的虚拟网关DNS用阿里公共DNS。保存退出后执行sudo netplan apply再执行ip addr show确认IP已经变成你配置的静态地址。ping一下网关和公网地址确认网络正常。4.2 开启SSH服务并验证远程登录Ubuntu桌面版默认不安装SSH服务端只能作为客户端去连别人。我们需要手动安装并启动sudo apt install -y openssh-server sudo systemctl enable ssh sudo systemctl start ssh安装完成后确认服务状态sudo systemctl status ssh看到active (running)说明服务正常。然后检查防火墙Ubuntu默认防火墙ufw可能没有开启如果开启了需要放行22端口sudo ufw allow 22/tcp在宿主机上Windows打开命令行工具Linux或macOS打开终端输入ssh 用户名192.168.xxx.100第一次连接会提示确认指纹输入yes然后输入密码成功后就登上了虚拟机的命令行界面。到了这一步你的虚拟机和真正的远程Linux服务器在操作感受上已经没太大区别了。以后所有操作都可以在宿主机终端里完成虚拟机窗口可以最小化甚至关掉显示这也更贴近服务器环境的工作方式。这一步看似只是开了个服务实际上你在不知不觉中已经完成了“Linux系统管理”里几个非常重要的操作查看服务状态、配置开机自启、编辑网络配置、设置防火墙规则。这些动作以后每天都会用到。4.3 构建一个简单的验证场景让宿主机浏览器访问虚拟机服务环境搭好了不妨做个有意思的小实验增强信心。在虚拟机里装一个Nginx让宿主机浏览器直接访问虚拟机的网页。sudo apt install -y nginx sudo systemctl start nginx在没有额外改动的情况下Nginx启动后默认监听80端口。在虚拟机里用浏览器访问http://localhost会看到Nginx的欢迎页。然后回到宿主机浏览器访问http://192.168.xxx.100同样能看到页面这说明虚拟机的网络服务已经能被宿主机正常访问了。这个极简场景背后其实就是以后网站部署、应用上线的基本雏形一个服务进程监听端口网络配置让外部能到达。你以为这只是装了个Nginx实际上你已经接触到了端口监听、HTTP协议、网络连通性排查这些SRE工作里的高频主题。4.4 快照虚拟机的后悔药一定要用起来VMware里最值得依赖的功能就是快照。它的原理是记录虚拟机在某个时间点的完整状态之后无论你怎么折腾系统坏了、软件装崩了、配置改乱了都可以一键恢复到快照时的状态。在环境刚配好的这个节点上也就是系统更新完成、SSH能连、静态IP配好、Nginx能访问这个状态下强烈建议做一次快照。在VMware界面里点击“虚拟机”菜单选择“快照”然后“拍摄快照”起个名字比如“环境基础配置完成”。之后的每个学习阶段比如装好数据库、配置好监控工具、部署完一个应用都可以再做一次快照这样你就有了一个可以随时回退的时间线。这个习惯看起来很简单但很多人忽略了等到把系统玩挂只能从头安装时才意识到快照有多香。5. 常见问题与排查技巧实录5.1 问题速查表这部分是我在实际操作和日常帮人排障时积累的经验整理成表格方便速查。问题现象可能原因解决方法虚拟机启动后黑屏内存分配过小或硬件加速未开启在虚拟设置里把内存调到4GB开启VT-x加速SSH连接超时SSH服务未启动或IP不对systemctl status ssh确认服务ip addr确认IPping通但SSH拒绝连接防火墙拦截22端口sudo ufw allow 22/tcp能SSH但无法访问NginxNginx服务未启动或端口被占用systemctl status nginx检查80端口监听apt安装软件速度极慢使用了默认国外软件源更换为国内镜像源安装软件显示依赖错误软件源索引不是最新sudo apt update sudo apt install -f虚拟机网络时通时断NAT网络异常或IP冲突在VMware里重启NAT服务或重建虚拟机网卡中文显示为方块缺少中文字体sudo apt install -y fonts-wqy-zenhei拖拽文件无法使用open-vm-tools未安装sudo apt install -y open-vm-tools-desktop系统关机时卡住虚拟机内服务未正常退出先退出所有终端再执行shutdown now5.2 几个高频问题的详细排查思路SSH连不上是新手最常见的拦路虎一般来说按顺序排查三个地方就能解决第一虚拟机里执行ip addr看IP是否正常第二确认SSH服务在运行命令是systemctl status ssh第三确认宿主机能ping通这个IPping不通就检查网络模式是不是NAT。这三步走完八成的问题都能定位。出现“apt安装软件报依赖错误”时我遇到很多新手第一反应是去网上搜怎么强制安装这是错误的做法。正确做法是先运行sudo apt update让软件源索引和实际仓库同步再运行sudo apt install -f自动修复依赖。绝大多数依赖问题都是因为索引过期导致的强制安装反而会把系统搞乱。NAT模式下虚拟机IP地址变了多数是因为DHCP租约到期重新分配。解决办法就是像我前面做的直接配置静态IP一劳永逸。这里有一个细节需要注意VMware的NAT子网地址可能会因为你更换了网络环境而变化如果换了网络后发现虚拟机网络不通去VMware的虚拟网络编辑器里看看子网配置必要时把自定义子网改回来。5.3 环境使用过程中需要注意的日常习惯虚拟机学习环境有一点和真实服务器不一样虚拟机的性能上限由宿主机决定。在虚拟机里同时跑编译、数据库、多个服务时内存和CPU会被快速吃满导致整个系统卡顿。我的建议是同时只跑一个主要任务比如在学数据库时就先停掉Nginx学Docker时就先关掉数据库。另外虚拟机在后台挂着会持续占用宿主机资源学习结束后最好把虚拟机关机或挂起给宿主机减负。关于备份除了快照之外虚拟机的重要文件最好定期导出。VMware可以创建“克隆”或在关机状态下复制虚拟机目录文件这些文件就是完整的虚拟系统拷到另一台电脑上还能继续用。我在学Docker之前就复制了一份干净的虚拟机副本之后折腾坏了直接删掉重新来完全无负担。6. 环境搭好后下一步的学习路线怎么走6.1 该往哪个方向深入环境搭建完成只是万里长征第一步但它给了你一个可以放心折腾的实验场。接下来我建议按下面的顺序深入学习这个顺序也是很多运维训练营的课程主线Linux命令体系是绝对的地基。ls、cd、cp、mv这些基础命令是入门但在SRE视角里更重要的是命令的组合和搭配比如用grep过滤日志、用awk和sed处理文本、用find定位文件、用ps和top排查进程。每天在环境里重复操作几次比死记硬背强得多。我个人的经验是把一个具体任务当成目标去练命令比如“找出系统里所有大于100MB的文件”做完这个任务find、du、sort这些命令就自然熟了。用户和权限管理是另一个必须掌握的模块。SRE经常要在服务器上创建账号、分配权限、排查越权访问。在虚拟机里新建用户、把用户加入sudo组、修改文件的所有者和权限位这些操作看起来琐碎但遇到真实事故时能不能快速定位权限问题往往决定了故障时长。Shell脚本是效率和自动化的起点。当你在命令行里重复执行三条以上命令时就该把它们写成一个脚本。循环、条件判断、变量这些基础语法不用多深能写一个自动备份日志的脚本就算入门。之后可以再学systemd服务把脚本注册成系统服务实现开机自启、异常退出自动重启这已经是生产级运维的基本形态了。6.2 把自己的环境逐渐变成小型实验场随着你学的内容越来越多这台虚拟机可以承载的项目也会越来越丰富。装一个MySQL或PostgreSQL数据库练习SQL查询和备份恢复部署一个Python或Go写的Web应用体验完整的应用上线流程安装Glances或Prometheus给系统加一个简易监控面板。每完成一个项目你就往快照时间线里加一个节点整个学习过程会特别有成就感。这台虚拟机最大的价值在于它是你自己的容错空间。现实工作中你不会轻易拿生产环境练手但在这台虚拟机里你可以放心大胆地执行各种命令哪怕是删库、格式化、把内核搞崩都没关系。犯错是学习过程中最有价值的部分虚拟机能让你以极低的代价获得这份经验。容器和编排这两个方向也建议在环境稳定后尽早接触。在虚拟机里安装Docker把应用容器化再试着用Docker Compose编排多容器应用这已经贴近当前主流运维的工作内容。后续如果对Kubernetes感兴趣也可以在这台虚拟机里搭建单节点的实验环境毕竟虚拟机比物理机更适合承载这种重型基础设施。6.3 拿到一个陌生环境时的通用排查思路学习环境搭建过程中积累的排查思路其实可以抽象成一套通用的方法论将来面对任何陌生服务器都适用。我个人习惯遵循“由近及远、由底向上”的原则。先看本机状态再查网络联通最后分析服务。本机状态包括内存、CPU、磁盘、进程对应free、top、df、ps这些命令网络联通包括IP配置、默认路由、DNS解析对应ip addr、ip route、ping、dig服务分析包括服务状态、监听端口、日志输出对应systemctl、ss、journalctl。这套排查流程用熟了之后你再去看任何一台故障机器都有清晰的排查路径不会东一榔头西一棒子。我现在带人的时候经常让他们先把虚拟机玩熟遇到问题优先在环境里复现和验证而不是直接去问运维群。因为很多问题自己动手查一遍既加深了理解又不会给团队添麻烦。这种自驱排障的能力就是SRE岗位最看重的软素质之一。最后分享两个小经验。第一个每完成一个重要环境配置都随手拍个快照并给快照写清晰的名字。第二个在终端里新建一个学习笔记目录把用过的命令、踩过的坑、解决方案都记录下来。这些笔记将来就是你自己的知识库面试前翻一遍比临时抱佛脚背题有用得多。