新买的 Ubuntu 云服务器,上手先做这几项检查
拿到一台新的云服务器,我习惯先不急着装东西,花两分钟做一遍”体检”。下面这些命令都是只读的,不会改动任何配置,可以放心执行。
1. 系统与运行时间
hostnamectl # 系统版本、内核、虚拟化类型
uptime # 已运行多久、平均负载
uptime 末尾的 load average 是 1、5、15 分钟的平均负载。经验上不超过 CPU 核数就算正常,比如 2 核机器长期在 2 以下就没问题。
2. 内存和磁盘
free -h
df -h /
free 里要看的是 available 那一列,而不是 free。Linux 会把空闲内存拿去做缓存(buff/cache),需要时再释放,所以 free 小不代表内存不够。
3. 有没有启动失败的服务
systemctl --failed --no-pager
输出 0 loaded units listed. 表示一切正常。如果有服务失败,用 journalctl -u 服务名 -n 50 看最近的日志。
4. 哪些端口在监听
ss -tlnp
重点看 Local Address 这一列:
| 地址 | 含义 |
|---|---|
127.0.0.1:端口 | 只有本机能访问 |
0.0.0.0:端口 / [::]:端口 | 所有网卡都在监听,外网是否能访问还取决于防火墙和安全组 |
5. 防火墙与安全组
sudo ufw status
云服务器有两层防火墙:
- 系统内的防火墙(Ubuntu 上一般是 ufw);
- 云平台控制台里的安全组。
外网想访问某个端口,两层都要放行。经常遇到的情况是:服务明明在监听,外面却连不上,最后发现是安全组没开。
6. SSH 配置
grep -E '^(PasswordAuthentication|PermitRootLogin)' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/*
比较稳妥的状态是:
PasswordAuthentication no:关闭密码登录,只允许密钥登录,能挡掉绝大部分暴力破解;PermitRootLogin:如果只用密钥登录,yes的风险不大。更严格的做法是建一个普通用户加 sudo,再把它改成no。
想看看有没有人在暴力破解:
journalctl -u ssh --since "-1h" --no-pager | grep -c "Failed\|Invalid user"
小结
| 检查项 | 命令 | 正常表现 |
|---|---|---|
| 负载 | uptime | 不超过 CPU 核数 |
| 内存 | free -h | available 充足 |
| 磁盘 | df -h / | 使用率低于 80% |
| 服务 | systemctl --failed | 0 个失败 |
| 端口 | ss -tlnp | 只有预期的端口在监听 |
| 防火墙 | ufw status + 安全组 | 只放行需要的端口 |
| SSH | sshd_config | 关闭密码登录 |
把这张表存下来,以后每台新机器都过一遍,心里就有底了。