如何在 DirectAdmin 中启用防盗链保护

盗链是指其他网站通过直接链接到您服务器上的 URL 来嵌入您的图片或文件——而无需自己托管这些文件。结果是他们的访客加载了您的图片,但您的服务器承担了带宽费用。防盗链保护可以阻止这种情况的发生。DirectAdmin 内置了易于配置的防盗链工具,只需几个步骤即可完成设置。

什么是防盗链保护?

当您在网站上发布图片时,文件存储在您的服务器上。通常情况下,由您自己的网页加载它——这是正常的。盗链是指其他网站上的人在其自己的 HTML <img> 标签中使用您图片文件的直接 URL。他们的页面展示了该图片,但每次有访客浏览其页面时,您的服务器便会传输该文件,消耗您的带宽配额。

启用防盗链保护后,服务器会检查每个文件请求的来源(HTTP 来源网址(Referrer)标头)。如果请求并非来自您自己的域名或已加入白名单的来源,服务器将阻止文件加载——从而保护您的带宽和内容。

为何盗链会浪费您的带宽

当您的文件被热门网站或社交媒体帖子盗链时,带宽使用量会迅速累积。您可能会遇到以下情况:

如何在 DirectAdmin 中启用防盗链保护

  1. 登录您的 DirectAdmin 控制面板。
  2. 导航至 高级功能 → 防盗链保护
  3. 将功能切换为 已启用
  4. 允许盗链的 URL 字段中,添加您自己的域名。至少需添加:
    • https://www.yourdomain.com
    • https://yourdomain.com
  5. 需保护的文件扩展名 字段中,输入您希望保护的文件类型(请参阅下方推荐列表)。
  6. 可选:设置 重定向 URL——将被拦截的盗链请求重定向到该 URL(例如占位图片或您的首页)。
  7. 点击 保存 以激活。

需保护的文件类型

在受保护文件类型字段中输入以下扩展名,以覆盖最常见的盗链文件格式:

您无需保护 HTML、CSS 或 JavaScript 文件——这些文件本应由浏览器公开访问。

将您的 CDN(内容分发网络)或可信 URL 加入白名单

如果您使用 CDN(内容分发网络),例如 Cloudflare、BunnyCDN 或第三方图片服务,则必须将这些 URL 加入白名单。否则,CDN 的请求将被拦截,您自己的访客也将无法加载图片。

如需将其他来源加入白名单,请将其添加到 允许盗链的 URL 字段中,每行一个。例如:

提示:如果在启用防盗链保护后发现您自己网站上的图片无法加载,请检查您域名的所有变体(带 www 和不带 www,以及 httphttps)是否都已添加到允许的 URL 列表中。漏掉某个变体是导致自我拦截最常见的原因。

如何禁用防盗链保护

如果防盗链保护引发问题——例如中断了您有意允许的图片嵌入,或干扰了需要直接访问文件的服务——您可以随时将其关闭:

  1. 在 DirectAdmin 中前往 高级功能 → 防盗链保护
  2. 将设置切换为 已禁用
  3. 点击 保存
防盗链保护页面,用于防止带宽盗用
防盗链保护页面,用于防止带宽盗用
点击启用(圆圈标注处),输入允许的 URL,然后点击保存
点击启用(圆圈标注处),输入允许的 URL,然后点击保存

更改立即生效。您可以随时按相同步骤重新启用。

了解带宽盗用及其实际代价

当他人盗链您的文件时,从外部来看流量似乎无害——但对您服务器的财务和性能影响可能相当显著。每当访客加载嵌入了您图片的第三方页面时,您的服务器就需要接收并处理该 HTTP 请求、从磁盘读取文件,并通过网络传输数据。您承担全部传输费用,却未能获得任何流量收益。

现实中的后果包括:

防盗链保护在服务器层面消除了上述所有风险,在任何文件传输之前便加以拦截。

通过 .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]

各行说明:

yourdomain.com 替换为您的实际域名。如果您的网站有多个域名、子域名或 CDN 来源,请为每个单独添加一条 RewriteCond 行。

将特定来源网址(Referrer)加入白名单

在某些合理情况下,您可能希望第三方网站加载您服务器上的文件——例如 Google 图片在搜索结果中显示您的照片,或合作网站展示您的 Logo。您可以按域名逐一进行白名单设置。

将您自己的网站加入白名单(必要操作)

务必将您自己域名的所有变体加入允许列表。即使漏掉一个变体(例如带 www 的版本),也会导致您自己的网站拦截其自身的图片:

将 Google 图片搜索加入白名单

当用户在 Google 图片搜索中点击某张图片时,其浏览器会直接从源服务器加载该图片,且来源网址(Referrer)标头包含 google.com 域名。为保持您的图片在 Google 图片中可见:

将 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)的请求——才会出现问题。

测试并修复预览问题

如果在启用防盗链保护后社交预览停止正常工作:

总结

保护您的网站资源

AsiaGB 托管服务内置 DirectAdmin,附带防盗链保护、SSL 证书以及充裕的带宽配额——专为各类规模的泰国网站而设计。

查看托管方案