服务器被挂黑链,如何批量删除恶意链接?

## 先确认:你的服务器是否真的被挂了黑链? 黑链(隐藏链接)通常出现在网站底部或页面源码的不可见区域,比如一段 `
` 或 `visibility:hidden` 的代码。如果你发现网站多出了不明外链,或者通过站长工具检测到异常链接,就需要立即处理。 **准备条件**: - 使用宝塔面板的用户:登录面板,进入“文件”或“网站”模块。 - 使用 SSH 的用户:准备好 root 权限或具有 www 目录读写的账户。 - **一定先备份**即将修改的文件:备份整个网站目录或数据库,防止操作失误。 ## 批量查找黑链:两种高效方法 ### 方法一(推荐新手):宝塔面板搜索 1. 进入“文件”页面,选择网站根目录(如 `/www/wwwroot/你的网站`)。 2. 点击右上角“搜索”,输入恶意域名(例如 `bad-link.com`)或特征字符如 `display:none`,勾选“搜索子目录”。 3. 查看搜索结果列表,所有包含该特征的 `.php`、`.html`、`.js` 文件都会列出来。 ### 方法二(SSH 命令行) 使用 `grep` 命令递归搜索整个网站目录: ```bash grep -r "bad-link.com" /www/wwwroot/你的网站/ --include="*.php" --include="*.html" --include="*.js" ``` 将 `bad-link.com` 替换为实际恶意域名。如果想找更通用的隐藏样式,可以搜索 `display:none` 或 `visibility:hidden`。搜索结果会显示文件路径和具体行号。 ## 三步清理法:删除、修复、堵漏洞 ### 1. 批量替换或删除恶意代码 **宝塔面板操作**:在搜索结果中勾选所有包含黑链的文件,点击“编辑”或“查看”,手动删除 `` 或 `
` 恶意代码块。如果黑链形式固定(如统一域名),可以用“批量替换”——在宝塔文件搜索结果的右上角点“替换”,输入老域名和新域名(新域名用空字符串即可)。 **SSH 命令**:使用 `sed` 批量替换: ```bash sed -i 's|||g' /www/wwwroot/你的网站/*.php ``` 注意:如果恶意链接分散在多个文件,建议先用 `grep -rl` 列出文件名,再批量处理: ```bash grep -rl "bad-link.com" /www/wwwroot/你的网站/ | xargs sed -i 's|bad-link.com||g' ``` **重要**:不要直接用 `sed` 删除整行,以防误伤正常内容。最好先备份再执行。 ### 2. 修复文件权限,防止被再次写入 检查网站文件权限,确保不需要写入的目录(如 `wp-content/uploads` 之外的目录)设置为 755,文件设置为 644: ```bash find /www/wwwroot/你的网站/ -type d -exec chmod 755 {} \; find /www/wwwroot/你的网站/ -type f -exec chmod 644 {} \; ``` 如果使用了动态程序(如 WordPress),还需要检查 `wp-config.php` 权限,建议设为 400 或 440。 ### 3. 检查计划任务和可疑文件 黑链往往由木马文件或恶意计划任务植入。在宝塔面板“计划任务”中查看有无不明定时脚本;SSH 下运行 `crontab -l` 列出所有任务。若发现可疑项(如下载远程脚本),立即删除。同时检查 `/tmp`、`/var/tmp` 以及网站目录下最近修改的 `.php` 文件,尤其是名称迷惑的(如 `1.php`、`admin.php`)。 ## 避坑指南:新手最容易犯的三个错误 1. **只删代码不清木马**:仅删除页面上的链接,但不删除植入后门的文件,黑链很快会重新出现。**必须找到后门文件**(例如上次修改时间异常的PHP文件)一并删除。 2. **误删正常友情链接**:替换时如果不加限制,可能把合法的友情链接也清掉。操作前先使用 `grep` 仔细确认恶意域名的唯一性,或者手动备份一份包含正常链接的列表。 3. **忽略数据库中的黑链**:部分黑链写在数据库的文章内容或选项表中。对于 WordPress 用户,用 `Search Regex` 插件或 `phpMyAdmin` 执行 SQL 搜索替换: ```sql UPDATE wp_posts SET post_content = REPLACE(post_content, 'bad-link.com', ''); ``` ## 验证效果并加固服务器 清理完成后,做三项检查: - 使用 `grep -r "恶意域名" /www/wwwroot/` 确认无残留。 - 用浏览器打开网站,查看页面源代码,搜索 `http://` 是否还有未授权的外链。 - 使用站长工具的“死链检测”或“外链分析”功能进行全站扫描。 **加固建议**: - 安装服务器安全软件(如宝塔面板自带的防火墙、Nginx 防盗链)。 - 修改 FTP 和数据库密码,避免弱口令。 - 定期搜索常见黑链特征(如 `display:none`、`visibility:hidden`)并生成报告。 如果你的服务器同时管理多个站点,建议逐个目录执行上述流程。零基础用户优先使用宝塔面板的搜索替换功能,可以大幅降低命令误操作风险。遇到告警或异常,可在相关社区搜索错误片段或咨询运维人员。希望这篇教程能帮你彻底清理黑链,还原一个干净的服务器环境。
分享到:
上一篇
用 AI 写 Shell 脚本,导致服务器文件被误删
下一篇
宝塔面板 Nginx 缓存配置错误,导致页面无法更新
1
系统公告

泽御云五一特惠活动🔥

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