
盗链是指其他网站通过直接链接到您服务器上的 URL 来嵌入您的图片或文件——而无需自己托管这些文件。结果是他们的访客加载了您的图片,但您的服务器承担了带宽费用。防盗链保护可以阻止这种情况的发生。DirectAdmin 内置了易于配置的防盗链工具,只需几个步骤即可完成设置。
什么是防盗链保护?
当您在网站上发布图片时,文件存储在您的服务器上。通常情况下,由您自己的网页加载它——这是正常的。盗链是指其他网站上的人在其自己的 HTML <img> 标签中使用您图片文件的直接 URL。他们的页面展示了该图片,但每次有访客浏览其页面时,您的服务器便会传输该文件,消耗您的带宽配额。
启用防盗链保护后,服务器会检查每个文件请求的来源(HTTP 来源网址(Referrer)标头)。如果请求并非来自您自己的域名或已加入白名单的来源,服务器将阻止文件加载——从而保护您的带宽和内容。
为何盗链会浪费您的带宽
当您的文件被热门网站或社交媒体帖子盗链时,带宽使用量会迅速累积。您可能会遇到以下情况:
- 托管方案中出现意外的带宽超额
- 由于服务器资源被占用为其他网站服务,您自己访客的页面加载速度变慢
- 您的内容被他人使用却未注明出处或来源
- 若您的方案有硬性带宽上限,可能产生超额费用
如何在 DirectAdmin 中启用防盗链保护
- 登录您的 DirectAdmin 控制面板。
- 导航至 高级功能 → 防盗链保护。
- 将功能切换为 已启用。
- 在 允许盗链的 URL 字段中,添加您自己的域名。至少需添加:
https://www.yourdomain.comhttps://yourdomain.com
- 在 需保护的文件扩展名 字段中,输入您希望保护的文件类型(请参阅下方推荐列表)。
- 可选:设置 重定向 URL——将被拦截的盗链请求重定向到该 URL(例如占位图片或您的首页)。
- 点击 保存 以激活。
需保护的文件类型
在受保护文件类型字段中输入以下扩展名,以覆盖最常见的盗链文件格式:
- 图片:
jpg、jpeg、png、gif、webp、svg - 文档:
pdf - 媒体:
mp4、mp3(如果您托管音频或视频) - 其他资源:
zip(如果您托管可下载文件)
您无需保护 HTML、CSS 或 JavaScript 文件——这些文件本应由浏览器公开访问。
将您的 CDN(内容分发网络)或可信 URL 加入白名单
如果您使用 CDN(内容分发网络),例如 Cloudflare、BunnyCDN 或第三方图片服务,则必须将这些 URL 加入白名单。否则,CDN 的请求将被拦截,您自己的访客也将无法加载图片。
如需将其他来源加入白名单,请将其添加到 允许盗链的 URL 字段中,每行一个。例如:
https://cdn.yourdomain.comhttps://your-cdn-provider.com
提示:如果在启用防盗链保护后发现您自己网站上的图片无法加载,请检查您域名的所有变体(带 www 和不带 www,以及 http 和 https)是否都已添加到允许的 URL 列表中。漏掉某个变体是导致自我拦截最常见的原因。
如何禁用防盗链保护
如果防盗链保护引发问题——例如中断了您有意允许的图片嵌入,或干扰了需要直接访问文件的服务——您可以随时将其关闭:
- 在 DirectAdmin 中前往 高级功能 → 防盗链保护。
- 将设置切换为 已禁用。
- 点击 保存。
更改立即生效。您可以随时按相同步骤重新启用。
了解带宽盗用及其实际代价
当他人盗链您的文件时,从外部来看流量似乎无害——但对您服务器的财务和性能影响可能相当显著。每当访客加载嵌入了您图片的第三方页面时,您的服务器就需要接收并处理该 HTTP 请求、从磁盘读取文件,并通过网络传输数据。您承担全部传输费用,却未能获得任何流量收益。
现实中的后果包括:
- 意外的带宽超额——如果某个病毒式帖子盗链了您服务器上的高清图片,您的月度带宽配额可能在数小时内耗尽。设有硬性上限的托管方案可能自动暂停您的账户或收取超额费用。
- 服务器性能下降——服务器的 I/O、CPU 和内存被毫无收益的请求消耗。您自己网站的访客可能因资源被占用而体验到更慢的加载速度。
- 内容控制权丧失——您的图片出现在您毫不相关的网站上,且未经您同意。如果这些网站包含不当内容,您的图片看起来似乎在为其背书。
- 法律风险——根据您所在的司法管辖区,反复未经授权使用您服务器上受版权保护图片的行为,可能使盗链方面临法律索赔——但记录和追究这些索赔需要耗费大量时间和精力,而保护措施可以从根本上预防这一切。
防盗链保护在服务器层面消除了上述所有风险,在任何文件传输之前便加以拦截。
通过 .htaccess 手动设置防盗链保护
DirectAdmin 的图形界面会自动将 Apache RewriteRule 写入您的 .htaccess 文件。但是,如果您需要更精细的控制——例如允许特定来源网址(Referrer)、有选择地拦截特定文件类型,或将规则与其他重写逻辑集成——可以手动编写规则。
在文件管理器中打开 public_html/.htaccess,并添加以下代码块:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|pdf|mp4|mp3)$ - [F,L]
各行说明:
RewriteCond %{HTTP_REFERER} !^$— 允许不带来源网址(Referrer)标头的请求(直接访问、浏览器书签、社交媒体爬虫)。RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com— 允许来自您自己域名的请求(http 和 https,带或不带 www)。RewriteRule \.(jpg|jpeg|...)$ - [F,L]— 以 403 Forbidden 响应拦截所有其他请求。-表示不提供替代文件;[F]发送 403 状态码;[L]停止后续规则处理。
将 yourdomain.com 替换为您的实际域名。如果您的网站有多个域名、子域名或 CDN 来源,请为每个单独添加一条 RewriteCond 行。
将特定来源网址(Referrer)加入白名单
在某些合理情况下,您可能希望第三方网站加载您服务器上的文件——例如 Google 图片在搜索结果中显示您的照片,或合作网站展示您的 Logo。您可以按域名逐一进行白名单设置。
将您自己的网站加入白名单(必要操作)
务必将您自己域名的所有变体加入允许列表。即使漏掉一个变体(例如带 www 的版本),也会导致您自己的网站拦截其自身的图片:
https://yourdomain.comhttp://yourdomain.comhttps://www.yourdomain.com- 您使用的任何 CDN 子域名:
https://cdn.yourdomain.com
将 Google 图片搜索加入白名单
当用户在 Google 图片搜索中点击某张图片时,其浏览器会直接从源服务器加载该图片,且来源网址(Referrer)标头包含 google.com 域名。为保持您的图片在 Google 图片中可见:
- 在 DirectAdmin 的"允许的 URL"字段中添加
https://www.google.com - 或在
.htaccess中添加:RewriteCond %{HTTP_REFERER} !^https?://(www\.)?google\. [NC]
将 Facebook 预览爬虫加入白名单
Facebook 的链接预览爬虫(facebookexternalhit)会在有人分享您的 URL 时抓取 OG 图片。如果收到 403 响应,预览将不显示图片。在大多数 Apache 配置中,发送空来源网址(Referrer)标头的爬虫已默认被允许通过。如果启用防盗链保护后 Facebook 预览失效,请将 https://www.facebook.com 加入允许列表。
社交媒体分享与 Open Graph 图片
防盗链保护可能产生意外影响的一个领域是社交媒体链接预览——即当有人在 Facebook、Twitter/X、LinkedIn 或 WhatsApp 上分享您的 URL 时出现的富媒体卡片。这些预览依赖爬虫抓取您页面 Open Graph 标签中指定的图片。
社交媒体爬虫的工作原理
当用户分享您的 URL 时,平台爬虫会访问您的页面并读取 og:image 元标签,然后抓取该图片 URL 以生成预览缩略图。如果防盗链保护对该请求返回 403,预览将在没有图片的情况下生成——仅显示纯文本,这会显著降低点击率。
为何大多数设置可以正常运行
社交媒体爬虫通常发送不带来源网址(Referrer)标头的请求。标准防盗链保护规则包含一个允许无来源网址(Referrer)请求通过的条件(RewriteCond %{HTTP_REFERER} !^$),因此爬虫可以自动通过。只有当您的规则过于严格时——例如拦截了所有非本域名的请求,包括空来源网址(Referrer)的请求——才会出现问题。
测试并修复预览问题
如果在启用防盗链保护后社交预览停止正常工作:
- 使用 Facebook 分享调试器(
developers.facebook.com/tools/debug)查看 OG 图片是否被正确抓取。 - 检查服务器访问日志,查找 User-Agent 为 Facebookexternalhit 或 Twitterbot 的图片 URL 返回 403 的记录。
- 在
.htaccess中于防盗链规则上方添加 User-Agent 例外:RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|Twitterbot|LinkedInBot|WhatsApp) [NC]
总结
- 盗链是指其他网站嵌入您的文件,消耗您的带宽。
- 在 DirectAdmin 的高级功能中启用防盗链保护。
- 保护常见图片类型:
jpg、png、gif、webp、pdf。 - 务必将您自己的域名和使用的 CDN(内容分发网络)加入白名单。
- 如有需要可随时禁用——测试它不会造成任何损害。