你有没有碰到过服务器突然卡爆?
CPU跑满、带宽占光、网站半天打不开。
先别慌着重启,先把搞事的进程找出来。
直接在ssh窗口输入下面的命令:
``` top 按P键按CPU占用排序,按M键按内存占用排序 ```扫一眼排在最前面的进程。
要是占了80%以上CPU的进程,名字你完全没印象,比如xmrig、minerd这种,基本就是挖矿病毒。
这里记下可疑进程的PID,就是进程的唯一身份证号。
避坑提醒:别看到陌生进程就乱杀,systemd、sshd这些是系统自带的,杀了服务器直接崩,拿不准可以先搜下进程名。
找到可疑PID之后,输入下面的命令查它的实际位置:
``` ls -l /proc/你的可疑PID/exe ```输出的结果就是这个进程存在你服务器哪个文件夹里。
举个例子,你从来没装过挖矿软件,结果出来的路径是/tmp/miner/xxx,那100%是恶意进程。
要是路径是你自己装的软件目录,比如/www/nginx/,那就是正常程序出问题了,不用杀。
很多人杀完进程半小时就复发,就是步骤错了。
按下面的顺序来,不会留后遗症。
很多恶意进程你一杀,它就自动从外网重新下载。
先查它连的啥外网地址,输入命令:
``` netstat -nap | grep 你的可疑PID ```输出里的Foreign Address就是它连的外网IP和端口。
先把这个端口封掉,输入:
``` iptables -A OUTPUT -p tcp --dport 刚才查到的端口 -j DROP ```断网之后它就没法下载新的病毒文件了。
先尝试温和杀掉,让它正常退出:
``` kill -15 你的可疑PID ```等10秒要是还没消失,就用强杀命令:
``` kill -9 你的可疑PID ```
记得查父进程:输入pstree -p 可疑PID,找到最顶层的父PID,一起杀掉。
很多病毒会用父进程拉子进程,只杀子进程没用。
这步是防复发的核心,90%的人复发都是漏了这步。
很多病毒会加个每分钟执行的定时任务,你删了进程它马上又启动。
有些高级病毒会在top命令里隐藏自己。
你看CPU占用很高,但是top里找不到可疑进程,就用下面的方法。
所有进程都会在/proc目录下生成文件夹,藏不住。
分别输入下面两个命令:
``` ps aux | wc -l ls /proc/ | grep "^[0-9]" | wc -l ```要是第二个命令的数字比第一个大5以上,肯定有隐藏进程。
你可以挨个看/proc下的数字文件夹,对应找隐藏的PID。
不想自己找的话,装个轻量查杀工具就行。
Debian/Ubuntu系统输入:
``` apt install chkrootkit -y ```CentOS系统输入:
``` yum install chkrootkit -y ```装完直接输入chkrootkit回车,等10分钟它就会自动扫。
扫出来标着INFECTED的就是可疑文件,直接按之前的步骤处理就行。
我之前有个客户的服务器,top里看不到异常,带宽天天占满,用这个工具一查就找到隐藏的挖矿进程了。
下次碰到服务器莫名变卡,别着急重启。
就按今天讲的三步来:先定位可疑进程,断网杀进程,再清残留。
碰到藏得深的就用工具扫一遍,全程10分钟就能搞定。
要是你第一次操作怕出问题,可以先拿测试服务器练手。
碰到拿不准的进程,直接复制名字去搜,大部分恶意进程都有人踩过坑。
现在就可以登你自己的服务器扫一眼,说不定还能揪出几个偷偷跑的闲置进程,省点服务器费用。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图