网站防盗链配置教程:Nginx与宝塔面板实操指南

什么时候需要开启网站防盗链

如果你的网站图片、视频、CSS或JS文件被其他站点直接引用加载,不仅消耗你的服务器带宽,还可能导致页面加载变慢、用户体验下降。
开启网站防盗链后,只有允许的来源(比如你自己的域名)才能加载这些资源,其他站点直接访问会被拒绝。

准备工作:检查服务器环境

在动手之前,先确认你的网站运行环境:

  • 如果使用 Nginx(常见于独立服务器或面板中转模式),需要找到站点配置文件。
  • 如果使用 宝塔面板(Linux版),登录后台后进入“网站”菜单。
  • 如果使用 Apache,方法类似但指令不同,本文以 Nginx 和宝塔为例。

另外,建议提前备份站点配置文件,防止写错导致网站无法访问。

方案一:Nginx 手工配置 Referer 验证

这是最传统的方法,通过校验 HTTP 头中的 Referer 字段来判断是否允许访问。

  1. 找到你网站的 Nginx 配置文件,通常在 /etc/nginx/conf.d//usr/local/nginx/conf/vhost/ 下。
  2. server 块或 location 块内,添加以下规则(以保护图片为例):
location ~ .*\.(jpg|jpeg|png|gif|bmp|swf|webp)$ {
    valid_referers none blocked server_names *.example.com example.com;
    if ($invalid_referer) {
        return 403;
    }
}

参数说明:

  • valid_referers 指定允许的 Referer 来源。none 表示直接访问(无 Referer)也允许,blocked 表示带空白 Referer 的请求允许,server_names 表示本服务器域名,*.example.com 表示泛域名。
  • $invalid_referer 为 Nginx 内置变量,当请求的 Referer 不在允许列表内时返回 true。
  1. 保存文件后测试配置并重载:
nginx -t
systemctl reload nginx   # 或 service nginx reload

确认无报错。
你可以将文件后缀替换成你实际需要的资源类型。

方案二:宝塔面板一键开启防盗链

宝塔面板为新手提供了图形化操作,无需手写配置。

  1. 登录宝塔面板,点击左侧“网站”。
  2. 找到你要设置防盗链的站点,点击右侧“设置”。
  3. 在弹出的窗口中,点击“防盗链”标签(如果找不到,先检查面板版本,较新版可能在“安全”分类里)。
  4. 开启“防盗链”开关,然后在“允许域名”框中填入你的网站域名,比如 example.com*.example.com,每行一个。
  5. 设置“允许空Referer”选项:如果希望允许用户在浏览器直接打开资源(比如朋友复制链接到地址栏),建议开启;如果希望完全限制,则关闭。
  6. 点击“保存”按钮。宝塔会自动修改 Nginx 配置并重载。

完成后你可以立即生效。

防盗链配置的三大常见坑

坑1:忘记允许空白 Referer

部分用户开启后,发现自己的网站图片显示正常,但直接在浏览器地址栏输入图片地址却被拦截(返回403)。
正常现象,因为地址栏请求不带 Referer。
如果你希望允许这种直接访问,在 Nginx 的 valid_referers 或宝塔面板中记得勾选“允许空Referer”。

坑2:防盗链规则写错导致站内资源被拦

例如,你的网站有子域名 images.example.com,但只写了 example.com,那么 images.example.com 加载的图片可能被判定为盗链。
建议泛域名写法 *.example.com

坑3:CDN 或代理后 Referer 丢失

如果你的网站使用了 CDN 或反向代理(比如 Cloudflare、又拍云),原始请求的 Referer 可能被修改或丢失。
这时需要配置 CDN 回源时携带原 Referer,或者在防盗链规则中加上 CDN 节点的域名。
具体参考你 CDN 厂商的文档。

如何测试防盗链是否生效

  1. 浏览器直接访问:复制一张你网站图片的链接,粘贴到新建的无痕窗口地址栏。如果配置正确且你关闭了“允许空Referer”,应该返回403;如果开启了允许空Referer,则图片能正常显示。
  2. 模拟盗链:在其他网站(比如随便搭建一个临时HTML页面)里引用你的图片,访问那个页面,观察图片是否显示。如果显示则防盗链未生效;如果显示为断裂图片或403错误,说明配置成功。
  3. 命令行测试(推荐):使用 curl 命令模拟不同 Referer:
# 模拟正常来源
curl -I -e "https://www.example.com/page" "https://www.yoursite.com/image.jpg"
# 模拟非法来源
curl -I -e "https://www.hacker.com" "https://www.yoursite.com/image.jpg"

正常来源应该返回200,非法来源返回403(或根据你配置的状态码)。

结语

以上内容覆盖了 网站防盗链 的两种主流实现方法和避坑要点。
无论你是新手还是有一定经验的站长,都可以按照步骤配置并验证。
如果你遇到问题,先检查 Referer 放行列表是否完整,其次确认缓存或代理影响。
后续还可延伸学习基于 Token 或签名认证的更严格防盗链方案。
建议将本文收藏,需要时快速查阅。

如果你正在准备从零开始保护网站资源,建议先按本教程操作一遍,再根据实际访问表现做微调。

分享到:
上一篇
零基础配置网站HTTPS强制跳转:Nginx与宝塔面板实战
下一篇
网站301重定向从入门到实操:新手也能自己配置
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意