宝塔面板网站防盗链设置教程:轻松防止资源被盗链
搞懂防盗链:你的资源为什么会被白嫖
网站上的图片、CSS、JS 文件如果没有任何限制,任何人复制你的链接粘贴到其他网站,都能正常展示。
这就是盗链。
被盗链最直接的后果是消耗你的服务器带宽,严重时甚至导致网站访问变慢或超额扣费。
宝塔面板内置了防盗链功能,通过验证请求头中的 Referer 字段来判断来源是否允许,从源头拦截非法引用。
操作前先确认这几件事
- 你已经在宝塔面板添加了要保护的网站(站点管理列表里能看到域名)。
- 宝塔面板版本不低于 7.4.0(老版本也可以设置,路径稍有差异)。
- 知道自己的“白名单”域名。如果你有多个域名(例如主站
example.com和 CDN 域名cdn.example.com),都需要加入允许列表。 - 理解空 Referer 的概念:直接浏览器打开图片、或某些下载工具请求时不带
Referer。默认宝塔会禁止空 Referer,需要根据实际场景决定是否允许。
一步步完成宝塔面板防盗链设置
- 进入站点设置
登录宝塔面板,点击左侧“网站”,找到你要保护的站点,点击右侧的“设置”按钮。
- 找到防盗链配置入口
在弹出的设置窗口中,点击顶部选项卡里的“防盗链”。
(如果找不到这个选项卡,说明面板版本较旧,请升级或在“配置文件”中手动添加 Nginx 规则。
)
- 填写允许访问的域名(白名单)
在输入框中逐行填写你允许引用资源的域名。注意需要包含协议和端口,例如:
http://example.com
https://example.com
https://cdn.example.com
如果同一域名同时要支持 http 和 https,请分两行写。
- 设置空 Referer 的处理方式
勾选“允许空 HTTP_REFERER”前需要三思。
如果你希望用户可以直接在浏览器地址栏打开图片(例如分享链接),就勾选它。
如果严格执行防盗链,不要勾选,这样所有不带 Referer 的请求都会被拒绝。
- 保存配置并测试
点击页面底部的“保存”按钮,配置即刻生效。
常见问题与避坑提醒
- 设置了防盗链后网站上的图片显示不正常? 最常见原因是你没有把当前域名加入白名单,或者漏掉了 HTTPS 协议。先用浏览器开发者工具(F12)查看图片请求的
Referer和响应状态码,如果返回 403 说明被拦截,检查白名单是否正确。 - CDN 域名需要允许吗? 必须允许。如果你的图片是通过 CDN 加速的,那么 CDN 域名也要加到白名单里,否则 CDN 回源时会因缺少 Referer 被拒绝。
- 忽略大小写:宝塔防盗链配置中域名不区分大小写,但协议和端口必须严格填写。
- 多个站点共用同一套图片:如果 A 站引用 B 站的图片,你需要在 B 站的防盗链白名单中加入 A 站的域名。
- Nginx 规则冲突:如果你在站点配置文件中手动添加过防盗链相关代码,宝塔面板的图形化设置可能不会覆盖它们,建议先删除手写规则再使用面板设置。
确认防盗链已经生效
保存配置后,可以用以下方法验证:
- 直接外网访问:在浏览器新标签页中输入你的一张图片链接(例如
https://你的域名/images/logo.png),如果是纯地址访问,Referer为空,根据你的设置可能返回 403 或正常显示。 - 模拟盗链:打开任意一个不在白名单的网站(例如
https://www.baidu.com),按 F12 打开控制台,在 Console 面板粘贴以下代码后回车:
var img = new Image();
img.src = 'https://你的域名/images/logo.png';
document.body.appendChild(img);
如果 Network 面板显示该图片请求的 Status 为 403,说明防盗链已生效。
- 查看访问日志:在宝塔面板“网站 → 访问日志”中搜索图片路径,如果出现大量
403且来源域名不是你允许的,恭喜你,配置正确。
如果你在实际操作中遇到任何异常,请先回头检查白名单域名是否写错(顶部不要留空格),或者临时关闭空 Referer 限制测试。
逐步微调后,你的服务器流量就不会再被盗链白白浪费了。