摘要:CPU 飙高、机器卡顿、云安全中心告警挖矿——本文给出通用排查清单:先隔离与快照,再查进程、定时任务、启动项、异常用户与出站连接,并说明何时该清后门、何时该重装。命令以常见 Linux 发行版为例,事实引阿里云帮助中心与宝塔官方文档(查询日 2026-10-03),不编造某次真实入侵故事。

公网上的云服务器被自动化扫描很常见。挖矿木马一旦跑起来,最直观的感觉是:CPU 长时间打满、网站变慢、SSH 卡顿,甚至连不上。阿里云帮助中心《挖矿病毒防护和处理指南》也写明:挖矿会恶意抢占 CPU,实例卡顿或无法远程连接往往是用户最早察觉的信号;开启安全加固时,云安全中心可能以「紧急」等级告警挖矿或木马。

本文是通用排查清单,不是某次真实入侵的复盘。命令以常见 Linux(Ubuntu/Debian/CentOS 系)为例,路径与服务名因发行版、面板版本而异,请以你机器实际输出与厂商文档为准。

查询日期:2026-10-03。操作前务必在云控制台做快照/备份;改防火墙与 SSH 时保留控制台 VNC/救援通道,避免把自己锁在外面。

服务器被挖矿入侵怎么排查:隔离、进程、后门与重装判断(2026)-有序
阿里云帮助中心:挖矿病毒防护和处理指南——告警、隔离与应急响应入口(2026-10-03 截图)

怎么发现异常

信号说明
CPU / 负载长期偏高top / 云监控里用户态 CPU 接近满载,业务进程却不多
云厂商安全告警挖矿程序、矿池通信、恶意域名访问等
出站流量异常对陌生 IP/端口的持续连接
面板或 SSH 异常登录陌生 IP、非常规时段登录成功
业务被劫持站点跳转、文件被改、日志被清空

若已装宝塔面板,可先看面板「安全」相关模块;官方文档《Linux 主机安全检测》说明其一键检测含账号弱口令、SSHD、后门、挖矿进程、Rootkit、历史命令与日志异常等多项,便于辅助溯源(仍需结合命令行核对,不能只信评分)。

服务器被挖矿入侵怎么排查:隔离、进程、后门与重装判断(2026)-有序
宝塔官方文档:Linux 主机安全检测含挖矿进程、后门与恶意进程等项(2026-10-03 截图)

第一步:隔离(断外网 / 快照)

发现疑似挖矿后,先止血,再慢慢清。阿里云文档建议:通过修改安全组限制公网与 SSH 访问,达到隔离效果;并对重要数据先做快照。

建议顺序:

  1. 云控制台创建快照(系统盘 + 有数据的数据盘)。
  2. 收紧安全组:入方向 SSH 只放你临时办公的 IP;若业务允许,先关掉对公网的业务端口,或整机只保留控制台救援通道。
  3. 出站可临时收紧(有的厂商支持出站规则):阻断对陌生矿池 IP 的访问,避免一边清一边继续挖。
  4. 若实例因挖矿被厂商管控关停,按控制台「安全管控事件」说明先解除锁定,再清木马(以各云厂商当前页面为准)。

隔离不等于处理完成;只是给你时间查持久化后门。

第二步:查进程与占用

登录后先看谁在吃 CPU(发行版工具名可能略有差异):

top -c
ps -eo pid,ppid,user,cmd,%cpu --sort=-%cpu | head -30

可疑迹象示例(不是认定标准):

  • 进程名伪装成 logrotate、kworker、随机字符串,却路径在 /tmp、/dev/shm、用户家目录隐藏文件夹。
  • CPU 占比异常高,且不是你部署的业务。
  • 用 ls -al /proc/<PID>/exe 看可执行文件真实路径,再 md5sum 到威胁情报平台比对(阿里云文档有类似步骤说明)。

结束进程前先记下 PID、路径、启动命令;只 kill 而不清定时任务,往往会反复回来。

第三步:查定时任务与启动项

挖矿家族常用 crontab / systemd 持久化。阿里云文档强调:若只删挖矿进程和文件、不清理计划任务,会出现「删了又来」。

当前用户与指定用户:

crontab -l
sudo crontab -u root -l
# 其他业务用户按同样方式查

系统级计划任务目录(按需 ls):

/etc/crontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/var/spool/cron/          # 或 /var/spool/cron/crontabs/

systemd 自启:

systemctl list-unit-files --state=enabled
# 对可疑 unit:
systemctl cat 可疑服务名.service

同时检查 /etc/rc.local、/etc/init.d/、用户级 ~/.config/systemd/user/ 等。发现下载脚本、挖矿参数、陌生二进制路径的条目,记录后删除或禁用,再杀进程。

若文件提示 Operation not permitted,可能被加了 immutable 属性;阿里云文档示例:lsattr 看到 i 标志后,用 chattr -i 文件 再删(操作前确认路径无误)。

第四步:查异常用户、SSH 与预加载劫持

# 账号
cut -d: -f1 /etc/passwd
sudo grep -E 'useradd|new user' /var/log/auth.log /var/log/secure 2>/dev/null | tail -50

# SSH 公钥(每个可能登录的用户都要看)
sudo find /home /root -name authorized_keys -ls 2>/dev/null
# 删掉不认识的公钥行;并轮换你自己的密钥

# 预加载劫持(可隐藏 top/ps/netstat)
cat /etc/ld.so.preload
# 若有陌生 .so,先备份再清空该文件(确认无业务依赖后再处理)

面板用户:查宝塔 / 1Panel 等后台的登录日志与最近改密记录;面板本身若暴露公网,应对照新服务器安全基线收紧端口与密钥登录。

第五步:查网络连接

ss -antp
# 或
netstat -antp

关注:

  • 对陌生公网 IP 的 ESTABLISHED 连接(尤其高 CPU 进程发起的)。
  • 监听在异常高端口、非业务服务的进程。

可对确认的矿池 / C2 地址在主机防火墙临时 DROP(示例,把地址换成你核实过的):

sudo iptables -A INPUT -s 可疑地址 -j DROP
sudo iptables -A OUTPUT -d 可疑地址 -j DROP

长期规则建议改到云安全组或发行版推荐的防火墙工具,并做持久化,避免重启失效。

第六步:清后门还是重装?

情况更稳妥的选择
刚发现、持久化点少、业务简单、有完整快照可按上面清单清进程→任务→启动项→公钥→预加载,再全盘杀毒/面板安全检测,观察 24–72 小时
反复复发、系统命令被替换、rootkit 特征、日志被大量清空备份数据后重装 / 初始化云盘 更省时间;阿里云文档亦写明挖矿往往很难彻底清干净,重装更有把握
跑过生产数据库、支付、用户隐私默认按「已失陷」处理:轮换所有密钥与面板密码、检查业务 webshell、必要时重装并从干净备份恢复

清理后立刻做:

  1. 轮换 SSH 密钥、所有系统用户密码、面板与数据库密码、云 API Key。
  2. 打操作系统与中间件补丁(Redis、面板、PHP、WordPress 插件等常见入口)。
  3. 确认异地备份可用——本机备份在失陷后不可信,见网站定期备份方案。
  4. HTTPS 与证书若被改过,核对证书与站点文件,参见免费证书自动续期。

预防:别等第二次

  • 新机器先做 SSH 密钥、禁密码、防火墙、自动更新。
  • 面板不要对全网裸奔:改端口、安全入口、TOTP、安全组只放自己 IP。
  • 少开 3306 / Redis / phpMyAdmin 到公网;弱口令仍是挖矿常见入口。
  • 打开云厂商主机安全 / 安全中心基础检测;有告警先隔离再查。
  • 定期异地备份,并偶尔做一次恢复演练。

相关阅读

来源与查询日期

  • 阿里云帮助中心:挖矿病毒防护和处理指南(隔离安全组、快照、进程/计划任务/自启/SSH 公钥/ld.so.preload/恶意账号、反复感染原因等)
  • 阿里云安全中心:挖矿程序处理最佳实践
  • 宝塔官方文档:Linux 主机安全检测(含挖矿进程、后门、Rootkit 等检测项;页面显示更新于 2026-07-07)
  • 查询日期:2026-10-03。云控制台菜单名与面板功能会变,以各厂商当前文档为准。

风险提示:误杀业务进程、改错防火墙或清空错误文件可能导致停服或无法登录。操作前保留云控制台救援方式与快照。本文不构成安全应急服务承诺,严重事件请联系云厂商安全支持或专业应急团队。云/建站类联盟链接尚未配置时,文中仅放官网与官方文档(affiliate_later)。