【运维闯关挑战】凌晨三点,服务器又炸了?先来这里练练手!
练习地址:https://ssh.fuzhoupyy.work/
你是不是也经历过这些瞬间
- 半夜被报警电话吵醒,Nginx 又挂了,睡衣都没换就摸黑打开电脑
- 手抖敲错一个命令,冷汗瞬间浸透后背,人已经开始回忆最近一次备份是什么时候
- 面试官问"生产环境服务突然不可用,你会怎么排查?",脑子瞬间一片空白
- 想学运维,可是身边没有一台服务器让你"随便造孽"
如果你中了任意一条,这个项目就是为你准备的——运维闯关挑战,一个纯 Web 端的运维技能训练平台。打开浏览器,你就拥有了一台完整的虚拟 Linux 服务器,随便折腾,炸了也不心疼。
这不是"看视频学运维",是真刀真枪敲命令
项目用纯 Python 实现了一个 Linux 虚拟机模拟器,你在网页终端里敲的每一条命令,都会被真实解析执行,而不是简单的文字游戏:
- 文件系统:
ls、cd、cat、mkdir、rm、cp、mv、find……支持权限管理、符号链接、路径解析、通配符展开 - 文本三剑客:
grep、sed、awk,还有cut、tr、sort、uniq、wc、xargs,管道、重定向(>>>)、逻辑运算符(&&||;)全都支持 - 服务管理:
systemctl、service,配合journalctl查日志排障 - 进程管理:
ps、top、kill、killall、pgrep、pkill,CPU/内存占用都是动态模拟计算的 - 网络排障:
ip、netstat、ss、curl、ping、iptables、traceroute、nslookup、dig - 用户与权限:
whoami、id、useradd、userdel、su、sudo - 包管理:
apt、dpkg,装包卸包一样不少 - 进阶玄学:
docker、kubectl模拟容器和 K8s 资源操作,甚至内置了一个迷你mysql主从复制排障场景(show slave status、change master to都能玩)
背后是一整套完整的虚拟文件系统、进程表、服务状态机、网络接口在真实运转——你的每一次 systemctl restart nginx,都会让虚拟机状态真正发生改变,而不是碰运气对字符串。
关卡怎么玩
每一关都是一个真实运维故障场景的还原。比如新手村第一关:
服务器 web-prod-01 的 Nginx 服务挂了,用户反馈网站打不开。请排查并恢复服务。
打开终端你会先看到:
$ systemctl status nginx
● nginx.service - A high performance web server
Active: inactive (dead) since Mon 2024-01-15 10:23:45 CST接下来怎么办,就看你的了。系统不是简单比对你敲的字符串,而是真正检查 Nginx 状态是否恢复为 active——用 systemctl start nginx、systemctl restart nginx 还是 service nginx start,随你喜欢,只要真能把服务救回来就算通关。
卡住了怎么办?每一关都配备三级渐进提示:
- 提示 1:往哪个方向想("看看服务的状态,是不是没启动?")
- 提示 2:该用什么工具("试试用 systemctl 来管理服务")
- 提示 3:几乎是标准答案("systemctl start 或 restart 都可以哦")
绝不会让你死磕到摔键盘,但也不会一上来就把答案喂给你。
通关之后,看看你是什么段位
系统会根据你答对的关卡数量给出一个专属运维评级,一共五档,从神坛到地狱一次到位:
| 段位 | 达标要求 | 评语 |
|---|---|---|
| 🏆 运维之神 | 答对 10 题 | 你是运维界的扫地僧,服务器见了你都自动修复! |
| 🥈 服务器低语者 | 答对 8 题 | 你能听懂服务器的心声,大部分问题都难不倒你。 |
| 🥉 rm -rf 幸存者 | 答对 6 题 | 虽然偶尔手滑,但总能化险为夷,命硬! |
| 🐣 实习生本生 | 答对 3 题 | 别灰心,每个大佬都是从 rm -rf / 开始的...吧? |
| 💀 sudo 都救不了你 | 答对 0 题 | 建议转行,听说产品经理不用敲命令。 |
评级文案毒舌又真实,看看你落在哪一档,发到群里让同事猜猜你的段位也是个不错的整活方式。
十大彩蛋,运维人的"传说"全部还原,但——不会剧透
这才是这个项目最有意思的地方:把流传在运维圈的经典"传说级操作",做成了真正能触发的彩蛋机制,背后有一整套完整的状态机支撑,不是文字游戏。
具体藏了哪十个(其实是十一个,还有一个隐藏彩蛋)?不告诉你。
只能剧透一点线索,勾起你的好奇心:
- 有的彩蛋会让整个虚拟系统"真的崩溃",之后你敲的每条命令都会报错,只有一个命令能救你
- 有的彩蛋会让终端"假死",屏幕疯狂刷屏,字面意义上的卡死
- 有的彩蛋能让系统"自愈",还会贴心吐槽一句运维圈都懂的老话
- 有的彩蛋会试图帮你掩盖"犯罪证据",但系统不会轻易放过你
- 还有几个纯粹整活的彩蛋,跟真正的运维故障毫无关系,就是让你会心一笑
每一个彩蛋都对应着运维老鸟私下讨论时才会提到的"梗",你可能听过其中一两个的传说,但不亲自在终端里把那句"传说中的命令"打出来,你永远不知道这个虚拟机会怎么"报复"你。
放心,这里没有真正的服务器会被你炸掉——所有效果都是纯状态模拟,安全沙盒,你可以肆无忌惮地去尝试那些在真实生产环境里绝对不敢碰的命令。至于是哪些命令、会触发什么效果……去终端里自己试试看吧。
技术亮点(写给爱看源码的你)
- 后端:FastAPI + Pydantic,REST API 配合 WebSocket 实时通信,支持心跳保活
- 关卡引擎:关卡数据完全配置化(JSON/YAML),支持精确匹配、正则匹配、状态检查、组合条件(
all_of/any_of)等多种验证方式,扩展新关卡无需改代码 - 安全机制:内置命令安全检测模块,识别并拦截命令注入、恶意 fork bomb 变体等真正危险的操作,审计日志留痕;十大彩蛋命令则从"冷冰冰拒绝"升级为"沉浸式模拟翻车"
- 测试覆盖:170+ 测试用例,覆盖虚拟文件系统、进程管理、服务管理、Shell 解释器、命令安全检测、彩蛋逻辑等核心模块,质量有保障
怎么开始
不用装环境,不用敲部署命令,点开链接就能玩:
打开就是一台任你折腾的虚拟服务器,你的故障排查之旅立刻开始。
不用担心把生产环境炸了,因为这里没有生产环境——只有一台任你折腾的虚拟机,十道等着你闯的关,还有十一个等你亲手触发的彩蛋。
来试试,看看你能不能修得起 rm -rf / 之后的残局,还是干脆一开始就被评为"sudo 都救不了你"。