服务器被挂黑链,如何批量删除并修复被篡改文件?

黑链到底是什么?怎么知道自己中招了?

黑链就是攻击者偷偷在你网站页面的源代码里嵌入的隐形链接,通常指向博彩、色情等非法站点。
普通用户看不到,但搜索引擎爬虫能抓到,会导致网站降权甚至被封。

自查方法:打开站点任意页面的源代码(浏览器右键→查看网页源代码),搜索 href="httpa href,如果发现域名不认识、链接藏在一个很小的div或iframe里,十有八九被挂了黑链。
更明显的特征是:首页或核心页面打开后,底部多了一段白色文字或占位符,鼠标移过去才发现有链接。

准备工作:先备份再动手

不管用什么方法修复,必须先对网站文件做完整备份
零基础用户推荐用宝塔面板的“备份”功能,或直接用FTP把所有文件下载到本地。

  • SSH工具:推荐Xshell或Putty,Windows系统直接搜索下载。
  • 命令行环境:本文以Linux+Nginx/Apache环境为例,Windows服务器请找对应的管理工具。
  • 超级管理员权限:登录SSH后,使用 sudo -i 或切换到root用户。

如果你用的是宝塔面板,也可以通过“文件”管理功能手动查看和删除文件,但批量查找还是命令行更快。

批量扫描被篡改文件:用grep命令一招定位

黑链的常见特征:链接中的域名是固定的(比如 bad123.com),或者恶意代码藏在不显眼的JS文件里。

第一步:找出包含黑链域名的文件

grep -r -i "bad123.com" /www/wwwroot/你的站点目录/ --include="*.php" --include="*.html" --include="*.js"
  • -r 表示递归搜索子目录;
  • -i 忽略大小写;
  • 后面的目录换成你网站的实际根目录;
  • --include 只搜索常见动态和静态文件,减少无关干扰。

如果已知黑链使用了某种隐藏手法(例如通过 eval() 动态输出),可以搜索 eval(base64_decode 等关键词:

grep -r -i "eval(base64_decode" /www/wwwroot/

第二步:将结果保存到文件,方便逐行处理

grep -r -l "bad123.com" /www/wwwroot/ > hacklist.txt

-l 只输出文件名,不输出具体行内容。

删除与修复:安全清理被篡改文件

拿到名单后,不要直接全删,因为有些文件可能是正常的且包含备份内容。
建议逐个检查:

  1. catvim 查看文件可疑部分,确认是否只有黑链代码。
  2. 如果是干净的文件被注入了额外代码,用备份覆盖(推荐)或用sed命令删除指定行。

用sed批量删除包含黑链域名的行(谨慎使用):

sed -i '/bad123\.com/d' 文件名

若需要批量处理,配合 xargs

cat hacklist.txt | xargs sed -i '/bad123\.com/d'

注意命令中的点号 \. 要转义,否则会被当成通配符。

更稳妥的做法:直接删除可疑文件后,从干净的备份中恢复。
如果文件是WordPress的wp-config.phpindex.php等核心文件,被修改后强烈建议用官方版本覆盖。

避坑指南:别踩这五个雷

  1. 不要直接格式化或重装系统——如果文件备份完整,只需清理被黑的文件即可。
  2. 权限不够导致修复失败:grep不到任何内容?检查当前用户是否对网站目录有读权限。chmod -R 755 可临时放开(生产环境注意安全)。
  3. 隐藏目录和名字特殊的文件:攻击者常在文件名加空格或点开头(如. .php),用 ls -la 查看隐藏文件。
  4. 别忘了数据库里的黑链:部分黑链写在数据表字段中(如文章内容),需要登录phpMyAdmin或宝塔“数据库”管理,搜索并替换。
  5. 修复后未及时更改密码:清理完文件后,必须修改FTP、数据库和服务器登录密码,否则很快再次被挂。

验证清除效果与后续加固

验证方法

  • 再次运行之前的grep命令,确保不再有匹配结果。
  • 用浏览器查看页面源代码(特别是首页),确认没有陌生链接。
  • 用在线工具搜索“site:你的域名”看看搜索引擎是否还收录了异常页面。

加固建议

  • 升级CMS到最新版本,及时修补漏洞。
  • 移除不需要的插件、主题。
  • 设置文件权限为 644(文件)和 755(目录),降低被写入风险。
  • 定期扫描:可编写cron任务每周执行一次grep命令,结果发邮件通知。

如果你按照上面的流程走一遍,服务器被挂黑链的问题基本能解决。
遇到报错或特殊情况,先看避坑部分,大部分问题都能自己排查。
实在不行,再找专业人士帮忙也不迟。

分享到:
上一篇
本地部署大模型,如何防止被用于恶意用途?
下一篇
宝塔面板 PHP 配置错误,导致网站出现空白页
1
系统公告

泽御云五一特惠活动🔥

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