什么是 sub2api 反代?新手也能看懂的保姆级教程
最近在折腾节点的小圈子里,经常能看到有人问:“大佬,sub2api 反代到底是啥意思?” 看似高深的术语,其实拆解开来并不复杂。今天就用大白话跟大家好好聊聊这个东西,顺便给新手们一个保姆级的上手思路。
一、 先搞懂两个概念:订阅 与 API
要理解 sub2api,先得把前缀拆开看。
-
Sub(Subscription):就是我们平时买的机场订阅链接,通常是一行以
sub://开头或者直接是base64编码的长字符串。把它导入 Clash、Sing-box 等客户端,节点就会自动列表化更新。 -
API:应用程序接口。在这里,简单理解就是一个“接口地址”,你发个请求给它,它返回标准格式的数据给你。
Sub2API 的字面意思,就是把一个“订阅链接”转换成一个“API 接口”。
二、 为什么要搞“反代”?
直接用订阅链接不香吗?为什么要多此一举转成 API 还要反代?这其实是出于几个非常实际的需求:
Sub2API 反代的工作原理示意图:客户端向反代服务器请求,由反代服务器去获取真实机场数据并返回。
- 转换格式:有些脚本或面板(比如某类懒人面板或订阅管理工具)不支持直接读取 Clash 订阅,只支持通过 API 获取节点列表。Sub2API 充当了“翻译官”的角色,把订阅转换成工具能看懂的 JSON 数据。
- 伪装与过审:直接的订阅链接在某些网络环境下或者被某些 ISP(运营商)探测时,容易被打上标签或阻断。通过自己的服务器建立一个“反代”(反向代理),对外暴露的是你自己的域名,隐藏了真实的机场地址,安全性更高,也更稳定。
- 统一管理:如果你手里有好几个机场的订阅,通过自建的 Sub2API 服务,你可以把它们聚合在一起,只对外提供一个 API 地址,方便自己在不同设备或脚本里调用。
三、 它是怎么工作的?
逻辑其实非常简单,就是一个“中间人”的流程:
- 客户端(或脚本) -> 向你的服务器发送请求:“给我节点列表”。
- 你的服务器(反代层) -> 在后台偷偷向真实的机场订阅链接发起请求。
- 真实机场 -> 返回订阅配置给你的服务器。
- 你的服务器 -> 把收到的配置解析、转换成 API 标准格式,再返回给客户端。
整个过程,对于你或你的脚本来说,只知道是你自己的服务器在提供服务,根本不需要知道原始链接是啥。
四、 怎么自己搭建一个?(Nginx 示例)
Nginx 反向代理配置代码示例,展示如何设置 proxy_pass 和头部信息。
既然知道了原理,动手搞一个其实不难。这里简单提供一个基于 Nginx 的反代思路(假设你已经处理好了后端转换逻辑):
-
准备环境:你需要一台 VPS(系统随意,常用 Linux),安装好 Nginx。
-
配置 Nginx 反向代理: 编辑你的 Nginx 配置文件(通常在
/etc/nginx/sites-available/下),添加如下配置段(这是一个反向代理到实际转换服务的示例):
location /my节点api/ {
# 这里填你真实的后端转换程序地址,或者是另一个反代上游
proxy_pass http://127.0.0.1:25500/convert;
# 增加头部,防止被识别
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# 缓存设置,可选,减轻源站压力
proxy_cache_valid 200 10m;
}
```
*(注意:以上 `proxy_pass` 地址中的 `25500` 端口只是示例,具体取决于你使用的是 sub2x、sub-web 还是其他转换工具)*。
3. **配置 SSL**:推荐使用 Certbot 申请一个免费的 SSL 证书,开启 HTTPS。这不仅安全,也是大部分客户端调用 API 的标配。
### 五、 总结
简单来说,**Sub2API 反代就是给自己的订阅链路加了一层“伪装外壳”和“格式转换器”**。它让节点管理更灵活,连接更隐蔽。如果你经常需要在代码或自动化脚本里调用节点信息,这是一个必须掌握的小技能。
如果你在搭建过程中遇到 Nginx 报错 502 或者转换格式不对,记得检查你的后端转换服务是否正常启动,以及防火墙端口是否已放行。

评论已关闭