当前位置:首页 > Ubuntu > 正文

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

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

Ubuntu防盗链设置教程(Nginx环境下防止图片盗链的详细指南) Ubuntu防盗链设置  Nginx防盗链配置 防止图片盗链 Ubuntu服务器安全 第1张

什么是防盗链?

防盗链(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

验证防盗链是否生效

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

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

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

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

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

总结

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

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