游客
2026 VPS网站挂马?3步彻底清理!

2026 VPS网站挂马?3步彻底清理!

一言准备中...

VPS网站被挂马怎么清理?一个老运维的血泪实操教程

上个月帮朋友处理了一个被挂马的WordPress站,后台文件被篡改,首页跳转到菠菜网站,Google Search Console里全是垃圾页面。这种经历相信很多站长都遇到过——VPS被挂马,轻则排名下降,重则服务器被拉黑。今天我就把自己踩过的坑、用过的工具和方法,整理成一篇接地气的实操教程,希望能帮你少走弯路。

一、挂马后的第一件事:别慌,先断网

当发现网站异常(比如首页跳转、后台无法登录、服务器CPU飙高),第一步不是去删除文件,而是立即停止Nginx/Apache和PHP服务。切断网络访问可以防止黑客继续写入恶意代码,也能避免搜索引擎继续收录垃圾页面。

命令示例(Debian/Ubuntu):

sudo systemctl stop nginx
sudo systemctl stop php8.1-fpm
# 如果数据库也被感染,可以先停止MySQL
sudo systemctl stop mysql

避坑提醒:千万别直接rm -rf重装系统!先备份关键数据(数据库、配置文件、主题/插件源码)。黑客可能植入了后门,重装后如果恢复老备份等于白干。

二、清理挂马:从根上挖出恶意文件

1. 用find命令快速定位近期修改文件

挂马文件通常修改时间比较新,或者拥有奇怪的名字。推荐用下面命令扫描最近72小时内修改的PHP文件:

find /var/www/html -name "*.php" -newer /var/log/syslog -type f | xargs ls -la
# 或者指定最近3天
find /var/www/html -name "*.php" -mtime -3 -type f -exec ls -la {} \;

2. 检查可疑目录和隐藏文件

黑客最爱藏文件的地方:

  • /var/tmp/ 或 /tmp/(通常用来放后门脚本)
  • wp-content/uploads/(上传目录,会被塞入base64编码的恶意文件)
  • wp-admin/includes/ 或 wp-includes/(核心目录)
  • ~/.ssh/authorized_keys(如果被添加了公钥,黑客能直接SSH登录)

实操命令:

# 查找所有包含base64_decode、eval、system等危险函数的php文件(排除正常主题)
grep -r --include="*.php" -l "base64_decode\|eval\|system\|exec\|popen\|passthru" /var/www/html

坑点:有些正常主题也会用到base64(比如某些缓存插件),需要结合文件路径和修改时间判断。建议先用grep扫出来,然后逐个ls -la看权限和修改时间,比正常文件早的、权限为777的通常有问题。

3. 检查计划任务(cron)

黑客经常通过crontab持久化后门,定期执行恶意脚本。

# 查看当前用户的计划任务
crontab -l
# 查看系统级别的cron
ls -la /etc/cron.d/ /etc/cron.daily/ /var/spool/cron/

常见手法:每分钟执行一次wget某个恶意域名下载脚本,或者执行一个隐藏目录下的PHP文件。记得删除所有不认识的定时任务。

4. 检查数据库是否被注入了恶意内容

如果网站是WordPress或Typecho,黑客可能通过SQL注入往文章表、选项表里塞恶意JS。登录phpMyAdmin或命令行:

-- 查找包含恶意域名的文章
SELECT * FROM wp_posts WHERE post_content LIKE '%http://恶意域名%';
-- 查看wp_options表是否有异常
SELECT * FROM wp_options WHERE option_name LIKE '%evil%' OR option_value LIKE '%http://%';

避坑:有些恶意代码藏在wp_options的active_plugins字段里,对应的插件文件已经被删除,但数据库中仍记录了路径,会导致后台异常。可以手动清理不存在的插件记录。

三、清理后的防御加固(避免二次被挂马)

1. 修改所有密码

包括SSH密码、数据库密码、FTP密码、后台管理员密码。建议用pwgen 16 1生成随机密码。

# 修改SSH密码
passwd
# 修改MySQL密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

2. 收紧文件权限

网站根目录建议设置成755,所有PHP文件644。上传目录可以设置成755但禁止执行PHP:

# 禁止uploads目录执行PHP(Nginx配置里加)
location /uploads {
    location ~ \.php$ {deny all;}
}

关键:检查是否有意外放开写入权限的目录。比如/var/www/html本身如果权限是777,任何人都能写文件,必须改成755。

3. 启用Fail2ban和Webshell查杀

安装Fail2ban防止暴力破解SSH,同时可以用find配合自定义黑名单定期扫描。另外推荐一个开源工具:Linux Malware Detect(LMD),能扫描常见后门。

# 安装LMD
wget http://www.rfxn.com/downloads/maldet-current.tar.gz
tar -xzf maldet-current.tar.gz
cd maldet-*
sudo ./install.sh
# 扫描网站目录
sudo maldet -a /var/www/html

四、为什么我推荐换用沐雨云服务器?——来自真实对比的体验

在被挂马这件事上,我踩过最深的坑是:廉价的VPS提供商根本不给你做基础安全防护。以前我用某云99元一年的机器,连系统内核都不更新,防火墙默认全开,还被旁边邻居VPS的攻击波及。后来换了沐雨云服务器,最大的感受就是:省心。

沐雨云服务器默认开启安全组策略,只开放必要端口(22、80、443),并且提供免费的基础DDoS防护。另外,他们的控制台自带一键修改SELinux和文件权限的功能,对于不懂安全的小白站长来说,相当于多了一道保险。最让我安心的是他们的快照备份——哪怕真的再次被挂马,也能15分钟内回滚到干净状态,不需要手动找后门。

当然,沐雨云不是万能的。再好的服务器,如果用户自己用弱密码、装来路不明的插件,一样会翻车。但至少他们的基础防火墙、系统镜像更新、以及对WebShell的监测能力,能让你的网站安全等级提升一个台阶。我现在三个客户网站都迁到了沐雨云,再也没有半夜爬起来删挂马的经历了。

五、最后总结:防大于治

清理挂马只是亡羊补牢,真正重要的是日常防护:

  1. 定期更新系统、Web服务、CMS和插件
  2. 关闭不必要的端口和服务
  3. 用云服务器自带的安全组或者iptables限制IP访问
  4. 每天异地备份数据库和网站文件(推荐用rsync到另一台VPS或对象存储)

如果你现在还在用没有快照、没有防火墙的廉价VPS,强烈建议考虑更换。沐雨云服务器在同等价位下提供了更完善的安全能力,至少让你睡个安稳觉。

沐雨云服务器官网:https://www.muyuyun.cn

  • 本文作者:站长
  • 本文链接: https://www.zhujishice.cn/vpszs/552.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
454
0
0
0
内卷太严重,已躺平...

2026美国服务器做流媒体,带宽10G够吗?

上一篇

2026年独立服务器CPU散热:3个致命误区

下一篇
评论区
内容为空

这一切,似未曾拥有

  • 复制图片
按住ctrl可打开默认菜单