住宅服务器挖矿进程查杀防护实战指南
你的服务器是不是被拿去挖矿了?
住宅服务器如果CPU突然持续100%,或者网络流量异常,很可能是被植入了挖矿程序。
本文从零开始,教你如何检查、清理挖矿进程,并做好基础防护,让服务器不再成为矿工的“免费劳力”。
第一步:快速判断是否中了挖矿木马
登录服务器后,先运行 top 或 htop(如果没有安装可以用 apt install htop -y 或 yum install htop -y)。
如果看到一个陌生进程占用CPU超高(比如大于200%),基本可以确认是挖矿。
再用 ps aux 查看进程详情,记下PID和启动命令。
常见挖矿进程名字是随机字符串或伪装成 systemd、kworker、cryptonight 等。
第二步:斩杀挖矿进程(别急着kill -9)
直接 kill -9 PID 往往没用,因为很多挖矿木马有守护进程或定时任务复活。
正确的做法:
- 先暂停进程(避免继续占用CPU)
kill -STOP PID
这一步可以让挖矿进程停止执行,但保留现场方便溯源。
- 查找进程关联文件
ls -l /proc/PID/exe # 查看可执行文件路径
cat /proc/PID/cmdline # 查看完整启动命令
如果文件在 /tmp、/var/tmp、/dev/shm、/root 等目录,基本就是木马。
- 彻底清除文件
rm -f /可疑文件路径
注意:先确认文件没有正在被系统关键进程使用。
- 检查定时任务
crontab -l # 当前用户
cat /etc/crontab # 系统cron
cat /var/spool/cron/crontabs/*
如果有不明任务,直接编辑删除。
- 检查自启动服务
systemctl list-units --type=service --state=running | grep -E '可疑名称'
ls -la /etc/systemd/system/
找到可疑服务文件直接 systemctl disable 服务名 && rm -f /etc/systemd/system/服务名.service。
- 最后kill进程
kill -9 PID # 或者 kill -CONT 后再 kill -9
结束之后再次 top 确认。
第三步:加固系统,防止二次入侵
挖矿木马通常是通过弱密码、漏洞或开放端口进来的。
做完清理后必须做以下操作:
- 修改所有用户密码(尤其是root和SSH登录用户)
passwd root
密码使用12位以上大小写数字加特殊字符。
- 禁用root直接SSH登录,改用普通用户+sudo
useradd -m admin && passwd admin
usermod -aG sudo admin
vim /etc/ssh/sshd_config
修改 PermitRootLogin no,然后 systemctl restart sshd。
- 关闭不必要的端口(如3306、6379等)
ufw enable
ufw default deny incoming
ufw allow 22/tcp(如果还需要SSH)
ufw allow 80,443/tcp(如果是Web服务器)
ufw status verbose
- 安装防病毒软件做全盘扫描(推荐ClamAV)
apt install clamav clamav-daemon -y
freshclam # 更新病毒库
clamscan -r --bell -i / # 全盘扫描,-i只显示感染文件
如果发现可疑文件,按提示删除。
第四步:验证效果与长期监控
重构后建议观察一周。
日常可以设置简单的CPU报警脚本:
#!/bin/bash
# 每5分钟检查CPU,超过80%自动记录可疑进程
while true; do
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'.' -f1)
if [ $cpu -gt 80 ]; then
echo "$(date) CPU $cpu%" >> /var/log/cpu_alarm.log
ps aux --sort=-%cpu | head -5 >> /var/log/cpu_alarm.log
fi
sleep 300
done &
可放到后台运行(记得保存到脚本文件并赋予执行权限)。
如果发现某个进程反复出现,检查是否有未清理的定时任务或自启动脚本,或者确认是否是通过Web漏洞(如PHP一句话)进入的,需要一并修复。
常见问题解答
Q:用kill -9杀死挖矿进程后,过几分钟又出现了,怎么办?
A:说明存在守护进程或定时任务。先执行 crontab -l 和查看 /etc/crontab,删除可疑行;再查 systemctl 列表,禁用可疑服务。如果还不行,用 lsof -i :端口 查看网络连接找到控制端。
Q:担心误杀系统进程,怎么区分?
A:用 ps aux 查看进程名和启动路径。系统进程通常在 /usr、/sbin、/lib 下,而挖矿木马通常在 /tmp、/dev/shm、/var/tmp 或用户家目录。也可以对比同版本系统正常进程列表。
Q:做完清理后,如何防止再次被植入?
A:除了加固SSH和关闭端口,还要及时更新系统补丁(apt update && apt upgrade -y)。如果是建站服务器,检查网站源码是否存在文件上传漏洞。使用自动安全工具如 fail2ban 可防止暴力破解。
当你按照以上步骤执行后,再结合长期监控,基本能解决住宅服务器的挖矿进程问题。
如果发现可疑进程来自未知IP,直接加入防火墙黑名单即可。