零基础转Linux运维:先啃这四块硬骨头,再谈自学教程
刚转行的人最容易犯的错,是把 Linux 当成一门要"学完"的课。买了一堆视频,命令列表从头背到尾,结果真给一台服务器,连 IP 都配不明白。我接触过不少这样的新手,问题不在学得少,在于学的顺序反了——先啃抽象的权限模型,再碰网络,最后才想起来自己连怎么连上去都没搞清楚。
这篇不打算给你一份"从入门到精通"的大纲。那种东西网上到处都是,收藏完也不会看。我更想说的是:零基础阶段,哪些东西必须动手做一遍才算数,哪些可以往后放,以及练手环境到底该怎么搭。把这几点想明白,剩下的靠时间堆就行。
先搞清楚你练手的机器从哪来
本地装虚拟机是最省钱的,但有个坑:你学的是运维,不是装系统。虚拟机网络配错一次,能折腾一晚上,学的全是 VirtualBox 的报错。我一般建议新手直接租一台最便宜的独立服务器或者低配机器,用真实公网 IP 练,SSH 连上去那一刻,你面对的才是真问题。
配置不用高。跑几个 Nginx 站点、一个 MySQL、再挂个 Docker,8G 内存足够了。像秀米云香港高防独立服务器E3-1230 这种 E3-1230 配 8G 内存、10M 带宽的机器,月付 134.30 美元,拿来练手不算贵,而且有公网 IP 和真实防火墙,iptables 规则写错了会直接断连——这种痛感本地虚拟机给不了。
选香港机房还有个好处:延迟低,你 SSH 敲命令不会因为网络卡顿误判成服务器问题。真要练网络排查,延迟稳定比带宽大更重要。
文件权限和用户管理,别跳过
这是最多人糊弄过去的一节。chmod 755、chown 这些命令谁都会敲,但 755 到底意味着什么,很多人答不上来。等你哪天部署服务报 Permission denied,翻日志翻到崩溃,才会回头补。
我的建议是拿一台干净机器,从头做一遍:
- 新建一个普通用户,用 sudo 提权,把 root 直接登录关掉
- 给一个目录分别设 644、755、700,用另一个用户去读、写、执行,观察报错
- 把 SSH 默认 22 端口改掉,配密钥登录,确认密码登录失效
这一套走下来大概两三个小时,但能省掉后面无数次"为什么没权限"的困惑。省这几个小时,代价是每次出问题都得搜一遍,不划算。
网络排查是分水岭
能不能独立定位网络问题,基本决定了你是"会用 Linux"还是"能做运维"。命令就那么几个:ping、traceroute、netstat、ss、tcpdump。难的是组合起来判断。
服务起不来,先看端口有没有监听,用 ss -tlnp 比 netstat 快。端口在监听但外面连不上,先查本机防火墙,再查机房的安全组,最后才怀疑路由。这个排查顺序我一般是这么定的,因为大部分"连不上"都出在前两层,往路由上找纯属浪费时间。
tcpdump 值得单独花时间。抓一次完整的 TCP 三次握手,看一遍 SYN、SYN-ACK、ACK 的往返,比看十篇讲 TCP 的文章都管用。抓到过 RST 包,你才能真正理解"连接被拒绝"和"连接超时"的区别。
Shell 脚本和服务部署,边用边学
脚本不用系统学语法。给自己定个真实需求:每天凌晨把网站日志按日期切分、压缩、删掉七天前的。写这个脚本的过程,你会自然用到变量、判断、循环、crontab,全是干活逼出来的,记得牢。
服务部署同理。手动装一遍 Nginx + PHP + MySQL,把每个配置文件改了什么、为什么改,记下来。然后再用 Docker 装一遍,对比两者差别。这一步做完,你对"环境"这个词的理解会上一个台阶。
要注意的是,别一上来就上 Kubernetes。零基础阶段碰 K8s,就像还没学会走路就去跑马拉松,概念能背下来,但底下发生了什么完全不知道。等你能手动把一套 LNMP 环境维护明白,再去看容器编排,会顺很多。
回到最开始的问题:零基础学运维,顺序比资料重要。先有真实机器,再啃权限,然后攻网络,最后用脚本和服务部署把前面串起来。这套走完,大概两到三个月,每天两小时。之后你再看那些 30G 的教程合集,会发现大部分内容你已经能自己判断该不该看了。练手机器不用一步到位,先租一个月最低配的,跑起来再说。