零基础搞定服务器运维:从开机到排障,哪些坑真该提前知道
刚拿到一台服务器的人,最先卡住的往往不是性能调优,而是最基础的那几步:SSH 连不上、密码改了进不去、磁盘莫名其妙满了、CPU 跑满却不知道是谁在占。这些问题看起来零散,其实背后是同一件事——对系统的基本运行方式没有概念。把运维知识按顺序补一遍,比东拼西凑记命令要省事得多。下面按开机接入、基础加固、日常监控、故障定位四条线,说清楚每一步该学什么,以及哪些地方值得花时间、哪些可以先放一放。
一、先把登录和文件这两件事弄明白
运维的起点是能稳定登进去,并且知道文件放在哪。多数人第一次接触的是 Linux 发行版,Ubuntu、Debian、CentOS 这几个占了大头,命令基本通用,选哪个入门差别不大。真正影响体验的是登录方式:默认的密码登录方便,但公网机器开密码登录,被扫的概率高得离谱。
我一般建议第一天就换成密钥登录。生成一对公私钥,把公钥丢到服务器的 ~/.ssh/authorized_keys,然后关掉密码认证。这一步花二十分钟,能省掉后面无数次被暴力破解的告警。
文件这块,先记住几个位置就够用:配置大多在 /etc,日志在 /var/log,网站程序通常在 /var/www 或 /home 下。知道日志在哪,后面排障会轻松一半。
- 查看磁盘占用:df -h 看整体,du -sh * 看当前目录
- 看进程:top 或 htop,前者自带,后者要装
- 看端口:ss -tlnp,比 netstat 快
二、加固这步别省,省下的时间后面加倍还
安全加固听起来像大厂才做的事,其实小站更需要。公网 IP 一旦暴露,扫描是全天候的,跟你的站点大小没关系。最划算的几件事:关掉 root 远程登录、改默认 SSH 端口、装上防火墙只放必要端口。
这里有个取舍。改 SSH 端口确实能挡掉大量自动化扫描,但对你自己也意味着每次连接都得带端口号。如果只是个人用,改成一个不常见的端口就够;如果是团队协作,把端口写进连接文档,别靠口口相传。
防火墙方面,ufw 在 Ubuntu 上够简单,firewalld 在 CentOS 系更常见。规则别一次开太多,先放行 SSH 和业务端口,跑通了再加。
如果服务器本身就承载对外业务,机房层面的防护也值得考虑。像 香港自营物理服务器⑦ 这类带 10M 带宽的配置,金牌 6138 双路 40 核 80 线程、64G 内存,月付 1550 元,适合业务量已经稳定、需要独立资源的场景。物理机和虚拟机的加固思路一致,但物理机少了宿主层,边界更清晰。
三、监控不是装个面板就完事
很多人以为装个面板就等于有监控,其实面板解决的是可视化,不解决告警。真正的监控要能在磁盘到 85% 的时候主动通知你,而不是等你发现网站打不开。
入门阶段,一个简单的脚本加 crontab 就能覆盖大部分需求:定时检查磁盘、内存、关键进程存活,异常就发邮件或推送到聊天工具。这套东西不优雅,但足够可靠。
再往上,Prometheus 加 Grafana 是主流组合,能看趋势、能配规则。代价是要多维护一个服务,机器配置太低的反而会被监控本身拖累。
我的判断是:单台机器用脚本加面板就够,三台以上再上 Prometheus。监控的意义在于趋势,单点数值高低说明不了什么,连续几天的曲线才看得出问题。
四、排障的顺序比命令更重要
服务器出问题的时候,最忌讳的是凭感觉乱改。有一套固定的排查顺序,能避免越修越乱。
先确认范围:是整台机器不行,还是只有某个服务不行。SSH 能连上说明系统活着,那问题大概率在应用层;SSH 都连不上,才往网络和系统层面找。
再看资源:CPU、内存、磁盘、网络四项,哪一项先到瓶颈。CPU 跑满通常是代码死循环或者被挖矿;内存涨得慢但不停,多半是程序泄漏;磁盘满得莫名其妙,先查日志文件有没有失控增长。
最后看日志。应用的错误日志、系统日志、Web 服务器日志,三处对照着看,多数问题能定位到具体时间点。这点我没法给通用答案,不同程序日志位置差别很大,养成看日志的习惯比记住位置更重要。
排障最实际的收获不是修好了这一次,而是知道下次该先看哪里。