我来检查实例环境。这次会通过远程命令通道执行几条只读命令,查询系统信息、已安装的软件以及正在运行的服务。系统信息已拿到。接着查一下正在运行的服务和监听端口。环境已经查清。我再补充一下 Nginx 各自配置和站点目录的对应关系,以便说明每一项服务在运行什么。检查完了。你这台机器运行的不只是一个站点,实际运行着 6 个 Next.js 站点。
一、系统基线
Ubuntu 22.04.5 LTS,内核 5.15.0-181,已连续运行 93 天,是稳定状态,也说明中间没有重启过,内核补丁没有生效。
| 资源 | 情况 |
|---|---|
| CPU | 4 核,load average 0.13 / 0.05 / 0.01,负载很低 |
| 内存 | 7.6 GB,已用 2.6 GB,可用 4.7 GB |
| 磁盘 | 118 GB,已用 59 GB,占 52%;注意 /home 占 27 GB |
| Swap | 0,没有 |
二、已安装的软件
已安装:
| 软件 | 版本 |
|---|---|
| Nginx | 1.18.0(Ubuntu 仓库版) |
| Node.js | v20.20.2 |
| npm | 已装 |
| Python | 3.10.12 + pip3 |
| Git | 已装 |
| PM2 | 已装(在 /usr/bin/pm2,但 root 下没有托管进程,实际使用 systemd) |
未安装: Docker、docker-compose、Java、MySQL、Redis、PHP、Go。
三、正在运行的服务(重点)
6 个 Nginx 站点,后端都是 Next.js:
| 域名 | 端口 | 转发到 | systemd 服务 |
|---|---|---|---|
naydqos.cn / www |
80 + 443 | :3003 | goHome-site ✅ |
blog.naydqos.cn |
8085 + 443 | :3005 | my-blog-all ✅ |
book.naydqos.cn |
8084 + 443 | :9099 | (无 systemd,手动跑) |
wallpaper.naydqos.cn |
8081 + 443 | :3001 | wallpaper-site ✅ |
aura.naydqos.cn |
8080 + 443 | :3000 | (无 systemd,手动跑) |
无域名(server_name _) |
8082 | :3002 | my-blog ✅ |
内存占用排行(next-server 进程):
- PID 1618597 → 812 MB(10.2%)
- PID 34371 → 674 MB(8.4%)
- PID 337504 → 285 MB
- 其余三个 190~220 MB
- 六个进程合计约 2.4 GB
其他常驻服务:nginx、sshd、cron、rsyslog、ntpd、tat_agent、snapd 等标准件。
四、发现 3 个该处理的问题
🔴 1. 两个站点没有开机自启保护
aura.naydqos.cn(:3000)和 book.naydqos.cn(:9099)这两个 next-server 进程不是由 systemd 管理的。机器一旦重启,这两个站点会直接 502,必须手动登录服务器重新启动。风险最高。
🟡 2. 一台机器运行 6 个 Next.js,内存压力很大
Next.js SSR 每个实例常驻 200~800 MB,六个加起来吃掉了 2.4 GB。目前可用 4.7 GB 还撑得住,但已经没有 Swap。如果再加一个站点或流量上来,OOM Killer 会随机终止进程;它很可能优先终止占用内存较大的那个,且不容易预料是哪一个。
🟡 3. 安全暴露面偏大
- UFW 防火墙没有启用(inactive),目前只依赖云平台的安全组
- 8080、8081、8082、8084、8085 全部监听
0.0.0.0,这些内部端口理论上可以从公网直接访问,绕过 Nginx 的 HTTPS - 没有安装 fail2ban,SSH 22 端口暴露公网,最近登录记录显示用
orcaterm登录,密码认证大概率是开着的
另外/home/ubuntu 占了 27 GB,但 du 只统计到 204 KB 的子目录,大头应该是隐藏目录或零散文件,如果需要,我可以查一下。
建议下一步(按性价比排序)
- 给 aura 和 vue-ebook 补 systemd 服务:10 分钟的事,避免重启后两个站点挂掉
- 加 4 GB Swap:防止 OOM 导致随机终止进程,这是内存不足时最省事的低成本方案
- 收敛端口:把 8080/8081/8082/8084/8085 改成只监听
127.0.0.1,或直接关掉,公网只留 80/443/22 - 开 UFW + 装 fail2ban:用于防暴力破解
这四项都属于「改动配置」,第 1、3 项会短暂影响连接。你想先处理哪一项?或者说「全做」,我会按顺序执行,每一步改完验证再进入下一步。