服务器被挖矿了?3 分钟彻底查杀 + 永久防护

一、先看症状:你的服务器是不是在“偷偷打工”

挖矿病毒最典型的特征是 CPU 占用率持续 100% 或 200% 以上。
你可以通过 SSH 登录服务器,输入 top 命令,按 P 按 CPU 使用率排序。
如果看到类似 xmrigminerdkdevtmpfsi 等陌生进程占满 CPU,基本可以断定中招了。
另外,查看带宽流量(宝塔面板 - 监控 - 流量图)也能辅助判断。

二、准备工作

  • 一台被感染的服务器(云服务器或物理机均可)。
  • root 权限的 SSH 连接(或 sudo 权限)。
  • 如果使用了宝塔面板,提前登录面板后台。
  • 一个干净的命令行窗口(不建议同时做其他操作)。

三、3 分钟查杀挖矿病毒

1. 冻结可疑进程并记录 PID

执行 top -b -n1 | grep -E 'xmrig|minerd|kdevtmpfsi' 直接筛选挖矿相关的关键词。
如果看不到明显关键词,就观察 CPU 超过 80% 的非系统进程。
记下 PID(例如 12345)。

2. 找到病毒文件路径

使用 ls -la /proc/12345/exe 查看进程对应的可执行文件路径。
一般病毒会藏在 /tmp/var/tmp/dev/shm 或用户家目录下。
lsof -p 12345 | grep 'txt' 也能看到加载的二进制文件。

3. 杀死进程并删除文件

先停掉进程:kill -9 12345
然后立即删除文件:rm -f /var/tmp/.systemd-private-xxx/xxx(替换成实际路径)。
注意,很多病毒会立刻自重启,所以最好先停止相关服务或改文件权限。

4. 清理定时任务和开机启动

检查 crontab:crontab -l 查看当前用户,cat /etc/crontab 查看系统定时任务。
病毒常通过 @reboot 或每分钟下载脚本的方式维持存活。
删除所有可疑条目。
宝塔用户可以在面板“计划任务”中检查并删除异常任务。

5. 检查 SSH 密钥和用户

cat ~/.ssh/authorized_keys 看有没有不认识的公钥。cat /etc/passwd 检查是否有奇怪用户(如 test、mysql)。
如果有,立即删除用户:userdel -r 用户名

四、永久防护:让病毒再也进不来

1. 禁止 root 直接 SSH 登录

编辑 /etc/ssh/sshd_config,找到 PermitRootLogin 改为 no
然后重启 sshd:systemctl restart sshd
以后用普通用户登录再 su 到 root。

2. 修改 SSH 端口

同样在 /etc/ssh/sshd_config 里修改 Port 为五位数字(如 22222)。注意:修改后记得在云服务商安全组和宝塔防火墙放行新端口,否则会被拒之门外。

3. 安装 fail2ban 防暴力破解

依赖包安装后执行:

yum install fail2ban -y   # CentOS
apt install fail2ban -y   # Ubuntu
systemctl enable fail2ban
systemctl start fail2ban

配置文件 /etc/fail2ban/jail.local 里开启 sshd 保护即可。
默认能封禁尝试次数过多的 IP。

4. 宝塔面板简单防护

在宝塔面板 - 安全 - 防火墙中:

  • 只放行业务必须的端口(如 80,443,22 建议改为非标端口)。
  • 打开“SSH 安全登录”开关,设置 IP 白名单(如果固定 IP)。
  • 定期扫描:宝塔“文件” - 目录扫描、系统扫描(部分付费插件)。

5. 保持系统与软件更新

定期执行 yum updateapt update && apt upgrade,及时修补已知漏洞。

五、效果验证与高频问题

验证是否清理干净

  1. 再次运行 top,观察 CPU 是否回落到 10% 以下(根据业务正常值)。
  2. 检查 crontab 和 /etc/crontab 确认无异常任务。
  3. 使用 netstat -antp | grep -E '3333|14444|8888' 等常见挖矿端口,确认无异常连接。
  4. 宝塔“安全” - “SSH 登录日志” 检查最近失败的登录尝试。

Q:杀了进程后几分钟又冒出来了怎么办?

说明有守护进程或定时任务在自动下载。
先断网(云控制台关闭外网),再彻底清理。
重点检查 /etc/cron.d//var/spool/cron/systemd 服务(systemctl list-units --state=active | grep -i miner)。
删除所有相关文件后联网测试。

Q:误删了系统文件怎么办?

如果不确定文件是否系统自带,先 kill -STOP 冻结进程,搜索该文件名看是否为已知软件包的一部分。
宁可先保留可疑文件,也不要盲目删除系统关键文件(如 libc.sosudo 等)。

Q:清理后服务器性能依然很差?

病毒可能已经留下了后门(如隐藏 rootkit)。
建议重装系统或使用 rootkit 查杀工具(chkrootkit)。
对于数据重要的情况,备份数据后重装最保险。

如果你正在处理服务器被挖矿的问题,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
服务器容器化部署最佳实践:Docker 入门到落地
下一篇
宝塔面板被黑?别慌,按这个步骤找回数据
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意