Ubuntu防盗链设置教程(Nginx环境下防止图片盗链的详细指南)

来源:这里教程网 时间:2026-03-28 20:51:37 作者:

在搭建网站时,经常会遇到其他网站直接引用你服务器上的图片、视频等静态资源,这不仅会消耗你的带宽,还可能影响网站性能。这种行为称为“盗链”。为了保护你的资源不被非法使用,我们可以使用 Ubuntu防盗链设置 来限制外部网站的访问。本文将手把手教你如何在 Ubuntu 系统中,基于 Nginx 服务器进行防盗链配置,即使你是小白也能轻松上手。

什么是防盗链?

防盗链(Anti-leech)是一种通过判断 HTTP 请求头中的 Referer 字段,来识别请求是否来自合法来源的技术。如果请求不是来自你允许的域名,服务器就会拒绝提供资源(如返回 403 错误或一张提示图片)。

前提条件

你已安装 Ubuntu 系统(建议 20.04 或更高版本) 你已安装并运行 Nginx 作为 Web 服务器 你拥有对服务器的 root 或 sudo 权限

步骤一:编辑 Nginx 站点配置文件

首先,打开你的站点配置文件。通常位于

/etc/nginx/sites-available/
目录下。假设你的站点名为
example.com
,执行以下命令:

sudo nano /etc/nginx/sites-available/example.com

步骤二:添加防盗链规则

server
块内,找到或添加一个
location
块,用于匹配静态资源(如图片、视频等)。以下是一个典型的防盗链配置示例:

location ~* \.(jpg|jpeg|png|gif|bmp|ico|webp|mp4|avi|flv|mp3)$ { valid_referers none blocked yourdomain.com *.yourdomain.com; if ($invalid_referer) { return 403; # 或者你可以返回一张提示图片: # rewrite ^/.*$ /images/hotlinking.png last; }}

代码说明:

valid_referers
:定义合法的来源。其中:
  -
none
允许直接访问(如用户在浏览器地址栏输入图片链接)
  -
blocked
允许 Referer 被防火墙或代理隐藏的情况
  -
yourdomain.com
*.yourdomain.com
是你自己的域名,需替换成实际域名
$invalid_referer
:如果请求的 Referer 不在合法列表中,该变量为真
return 403;
:直接返回 403 禁止访问错误 注释掉的
rewrite
行可用于返回一张自定义提示图(需提前准备好
/images/hotlinking.png

步骤三:测试并重载 Nginx

保存配置文件后,先测试 Nginx 配置是否正确:

sudo nginx -t

如果显示

test is successful
,说明配置无误。接着重载 Nginx 使配置生效:

sudo systemctl reload nginx

验证防盗链是否生效

你可以通过以下方式测试:

在自己网站页面中嵌入图片,应能正常加载(因为 Referer 是你自己的域名) 在其他网站(或本地 HTML 文件)中引用你的图片链接,应无法加载或显示 403 错误 直接在浏览器地址栏输入图片 URL,应能正常访问(因为 Referer 为空,属于
none
情况)

小贴士:提升 Ubuntu服务器安全

除了防盗链,你还可以结合以下措施进一步增强 Ubuntu服务器安全

定期更新系统和软件包 配置防火墙(如 UFW) 禁用不必要的服务 使用 HTTPS 加密传输

总结

通过以上步骤,你已经成功完成了 Nginx防盗链配置,有效防止了他人盗用你的静态资源。这项设置不仅能节省带宽,还能提升网站的整体安全性。记住,防止图片盗链 只是服务器安全的一小部分,建议你持续关注整体安全策略。

如果你在操作过程中遇到问题,欢迎在评论区留言交流!

相关推荐

热文推荐