宝塔面板Nginx防盗链设置教程

宝塔面板Nginx防盗链设置图文教程,新手也能轻松搞定

如果你运营的网站提供了图片、视频或下载文件,就很容易被其他网站直接引用(俗称“盗链”)。
盗链会消耗你的服务器带宽和资源,却无法带来任何流量。
今天这篇教程专为零基础用户准备,帮你一步步在宝塔面板中完成 Nginx 防盗链配置,不再被白白占便宜。

开始之前,请确认这些前提

在动手操作前,请先检查以下三项是否满足:

  1. 你已经在宝塔面板中创建了站点,并且站点使用的是 Nginx 环境(Apache 环境不适用本方法)。
  2. 你拥有该站点的管理权限,可以进入“网站” > “设置” > “配置文件”。
  3. 了解自己的域名(例如 example.com)以及是否需要允许空 Referer 来源(比如用户直接从浏览器地址栏访问)。
如果你不确定当前环境是 Nginx 还是 Apache,可以在宝塔面板左侧“软件商店”中查看已安装的 Web 服务。

核心步骤:通过宝塔面板配置防盗链

1. 找到站点配置文件

登录宝塔面板,依次点击左侧菜单“网站”,找到你要设置防盗链的站点,点击右侧的“设置”按钮。
在弹出的窗口中,选择“配置文件”选项卡(通常位于最右边)。

2. 定位到 server 块,添加防盗链规则

在配置文件中找到 server { ... } 大括号。
我们通常将防盗链规则放在 server 块内部,靠近开头位置。
在下面示例中的位置加入以下代码(注释部分可省略):

# 防盗链配置
location ~* \.(jpg|jpeg|png|gif|bmp|webp|svg|ico|css|js|mp4|flv|zip|rar)$ {
    valid_referers none blocked example.com yourdomain.com *.yourdomain.com;
    if ($invalid_referer) {
        return 403;
    }
}

解释

  • location ~* \.(jpg|jpeg|...)$:匹配要保护的资源后缀,你可以根据实际情况增删文件类型。
  • valid_referers none blocked example.com yourdomain.comnone 表示允许空 Referer(用户直接打开);blocked 表示允许没有协议的 Referer(通常允许搜索引擎等);后面列出你允许引用的域名(记得替换成你自己的域名)。如果你不希望允许空 Referer,可以删除 none
  • if ($invalid_referer) { return 403; }:当 Referer 不在允许列表中时,返回 403 禁止访问。

3. 保存并重启 Nginx

点击配置文件编辑框右上角的“保存”。
然后回到网站设置页面,点击顶部“服务”标签中的“重载配置”或“重启”按钮(推荐“重载配置”,不会中断现有连接)。

避坑指南:三个容易踩的坑

坑一:自己网站的资源也无法访问

如果你发现自己的网站图片都显示不了,通常是因为 valid_referers 中没有包含你自己的域名。
请确保已将当前站点的完整域名(包括 www 子域名)添加到规则中。

坑二:CDN 或反向代理导致 Referer 被篡改

如果你的网站启用了 CDN(如又拍云、七牛云),或者使用了 Nginx 反向代理,CDN 回源请求的 Referer 可能不是你原始域名的。
此时需要在 valid_referers 中加入 none 或者添加 CDN 的回源 IP。
更稳妥的做法是只在 CDN 层面设置防盗链。

坑三:误伤搜索引擎爬虫

搜索引擎(百度、谷歌)的爬虫通常会携带 Referer,但部分特殊爬虫可能不带。
如果你不希望影响 SEO,建议保留 none blocked,或者仅对图片、视频等非页面资源做严格限制。

效果验证:如何判断防盗链是否生效?

方法一:浏览器开发者工具

  1. 打开网站的一张图片,右键“在新标签页中打开”。
  2. 在浏览器地址栏直接访问该图片链接,如果防盗链配置正确但未允许 none,此时可能会看到 403 错误页面。
  3. 也可以在任意其他网站(例如在百度搜索页或任意论坛)插入你的图片链接,如果图片无法显示,说明防盗链生效了。

方法二:使用 curl 命令模拟 Referer

登录服务器的 SSH 终端(或宝塔面板的“终端”),执行以下命令:

# 使用错误的 Referer 访问图片,预期返回 403
curl -I -e "http://wrong-site.com" http://你的域名/图片路径.jpg

如果返回的 HTTP 状态码是 403,说明规则生效。

# 使用正确的 Referer 访问,预期返回 200
curl -I -e "http://你的域名" http://你的域名/图片路径.jpg

如果返回 200,说明正常用户访问不受影响。

写在最后

宝塔面板 Nginx 防盗链设置并不复杂,只需要在配置文件中添加几行规则,就能有效保护你的带宽和资源。
如果你在配置过程中遇到问题,优先检查域名是否正确拼写、是否有空格或中文符号,以及是否忘记了保存重载。
配置成功后建议定期检查日志,看看是否有异常的 403 请求。
希望这篇教程能帮你一步到位搞定防盗链。

分享到:
上一篇
服务器直播服务器搭建:零基础搭建服务器直播:完整操作指南
下一篇
Linux服务器用户密码策略设置教程:从零开始强制密码复杂度
1
系统公告

泽御云五一特惠活动🔥

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