前几天一个做小程序的朋友半夜找我,说阿里云服务器用不了,网站白屏,SSH也连不上。他第一反应是服务器被入侵了,打算直接重装系统。我让他先停手,花十分钟按顺序排查,结果问题很简单。这类情况很常见,多数时候服务器本身没坏,而是某项配置或状态变了。顺序理清楚,很多问题几分钟就能定位。

先看实例状态
登录阿里云控制台,进入云服务器ECS的实例列表,先看状态。这一步很简单,但很多人会直接跳过。
- 运行中:实例本身正常,问题多半在网络、安全组或服务层面,接着往下查。
- 已停止:可能是手动关机,也可能是系统因故停机,确认后手动启动即可。
- 已过期或欠费:按量付费余额不足,或包年包月到期未续费,都会导致实例无法访问。
欠费的话,充值后一般几分钟就能恢复。不过欠费时间拖长,数据可能被释放,发现了就尽快处理。
安全组是最常见的卡点
安全组可以理解成服务器前面的门禁。很多人买机器时只放行了22端口(SSH)或80端口,后来新增服务,比如3000或8080,却忘了在安全组里加规则。服务明明在跑,外面却访问不到。
那位朋友就是这种情况。他前一天刚改了Nginx的监听端口,安全组没有同步更新。后来他在控制台的安全组规则里加上443端口的入方向规则,大约三十秒后网站就恢复了。
检查时重点看两处:入方向规则的端口和协议是否正确,授权对象是否写对。如果只授权了某个固定IP,换个网络环境访问就会被拦下。测试阶段可以临时放宽,但正式环境最好只开放必要端口,来源地址也尽量收窄。
公网IP、带宽和域名解析
服务器内部正常、外网却访问不了,就要看公网这一层。
- 公网IP变了:按量付费且没有绑定弹性公网IP的话,停机重启后IP可能会变,原来的域名解析随之失效。绑定弹性公网IP可以避免这个问题。
- 带宽打满:流量突增时带宽不够,访问会变慢甚至超时。到云监控里看网络流入流出的曲线,就能确认是不是这个原因。
- 解析记录出错:检查域名是否指向正确的公网IP,记录有没有被误删或误改。可以在本地用ping或nslookup测试。
之前处理过一个客户的案例,网站突然打不开,最后查出是域名的A记录被同事在另一个后台误改成了旧IP。从服务器那边看一切正常,只有查DNS才能发现。所以排查时两边都要看。
服务器内部的问题
安全组和网络都没问题,就要登录服务器本身看看。SSH连不上时,可以先通过控制台提供的远程连接(VNC)进入系统。
- 磁盘写满:日志不断增长,磁盘满了之后不少服务会直接崩溃。用df -h可以快速看出来。
- 内存耗尽:进程会被系统强制杀掉。用free -m和top查看占用,小内存机器跑了太多服务时最容易出现。
- 服务未启动:服务器重启后,如果没设置开机自启,网站服务就不会自动运行。用systemctl status加服务名检查。
- SSH配置被改:改过SSH端口或禁用了密码登录,又没保存好密钥,就会登不进去。修改前最好先确认另一种登录方式可用。
同一位小程序开发者后来又遇到过类似问题,原因是日志没做轮转,一个月下来占满了整个系统盘。清理出空间,并配置logrotate之后,这个问题就没再出现。
照着做的排查清单
下次阿里云服务器用不了,可以按下面的顺序逐项确认,大部分情况都能覆盖:
- 控制台查看实例状态,确认是否运行中,有没有欠费。
- 检查安全组入方向规则,端口和授权对象是否正确。
- 确认公网IP没有变化,域名解析指向正确的地址。
- 通过远程连接登录服务器,检查磁盘、内存和服务状态。
- 查看系统日志和应用日志,找到报错的具体位置。
- 仍然判断不了,就提交工单或联系技术支持,附上报错截图和出问题的时间点,沟通会快很多。
平时怎么防
服务器出问题时,最容易出事的是慌乱中乱改配置,甚至直接重装系统,反而把本来能快速修好的问题搞复杂。先看状态,再看网络,最后看服务,一层层排下来,多数问题半小时内能解决。平时做几件小事也能少踩很多坑:关键服务设置开机自启,日志配置轮转,改安全组前先记下原有规则,数据定期备份。