在安装宝塔面板的nginx服务器上使用sing-box的订阅功能

猿代码  ·  2026-02-27

之前在服务器一直使用f佬的sing-box一键脚本,尤其是脚本中带有订阅功能,适配了多款app。但若服务器中已经安装了宝塔面板的nginx环境,这个脚本就找不到nginx环境了(宝塔面板自带的nginx路径与常规安装nginx的路径不同),从而导致sing-box安装失败。

提出这个bug后,在f佬耐心帮助和AI的辅助下,终于实现了在不影响宝塔原有nginx功能设置的基础上,增加订阅功能,安装过程如下。

Step1:正常安装sing-box一键脚本

【注意】

  1. 在安装的时候,一定不要选择带“订阅”的(建议选择第 5 项);
  2. 安装的时候,记住你输入(或自动生成)的uuid(第二步要用)。

Step2:配置宝塔nginx

宝塔的nginx配置文件为/www/server/nginx/conf/nginx.conf
在配置文件的末尾可以看到有:include /www/server/panel/vhost/nginx/*.conf;
也就是说,我们可以在这个路径下增加一个子配置文件。这样既不用改动主配置文件,也不用担心面板后续升级影响到sing-box的订阅。

进入 /www/server/panel/vhost/nginx 目录,在这个目录下增加一个文件,文件名任意,后缀必须为.conf(比如:singbox.conf),文件内容如下:

map $http_user_agent $path1 {
  default                    /;
  ~*v2rayN                   /v2rayn;
  ~*clash                    /clash;
  ~*Neko|Throne              /neko;
  ~*ShadowRocket             /shadowrocket;
  ~*SFM|SFI|SFA              /sing-box;
}

map $http_user_agent $path2 {
  default                    /;
  ~*v2rayN                   /v2rayn;
  ~*clash                    /clash2;
  ~*Neko|Throne              /neko;
  ~*ShadowRocket             /shadowrocket;
  ~*SFM|SFI|SFA              /sing-box;
}

server {
  listen 33333 ;  # 自己设置一个nginx的端口号,不要和系统已使用的端口重复
  listen [::]:33333 ;  # 和上面一行的端口号一致即可
  server_name localhost;

# 注意:将下面三处的“11-1...111”字符串替换为你在第一步记录的uuid,前后的内容不要改动
  location ~ ^/11111111-1111-1111-1111-111111111111/auto2 {
    default_type 'text/plain; charset=utf-8';
    alias /etc/sing-box/subscribe/$path2;
  }

  location ~ ^/11111111-1111-1111-1111-111111111111/auto {
    default_type 'text/plain; charset=utf-8';
    alias /etc/sing-box/subscribe/$path1;
  }

  location ~ ^/11111111-1111-1111-1111-111111111111/(.*) {
    autoindex on;
    proxy_set_header X-Real-IP $proxy_protocol_addr;
    default_type 'text/plain; charset=utf-8';
    alias /etc/sing-box/subscribe/$1;
  }
}

按上面的要求设置好端口号和uuid,保存文件即可。

Step3:验证及重载nginx

  1. 使用命令 nginx -t 对配置进行验证(终端输出包含 syntax is ok 与 test is successful,说明配置文件正确);
  2. 使用 nginx -s reload 或者 systemctl reload nginx 任一命令执行重载;
  3. 也可以在宝塔面板 “软件商店--已安装” 中找到nginx,进入“设置”,点击“重载配置”按钮;
  4. 如果一切顺利,用浏览器尝试访问 http://你的ip:端口号/uuid/(比如:http://192.168.1.1:33333/11111111-1111-1111-1111-111111111111/),最后的斜杠一定要有!如果可以看到目录列表,即表示配置成功!

下一篇:没有了
评论已关闭
逐浪吧|搏浪号博客. All Rights Reserved. Theme Jasmine by Kent Liao.