基于 sing-box、Cloudflare Tunnel 和 Caddy 的一键部署脚本,用来生成 Vmess/Vless + WebSocket 节点及多客户端订阅。
curl -fsSL https://raw.githubusercontent.com/tumgle/cf-sing-box/master/install.sh -o install.sh && chmod +x install.sh && bash install.sh- Linux 服务器
systemdroot权限- 系统中建议具备
curl、jq、ss、shuf
| 文件 | 说明 |
|---|---|
install.sh |
主部署脚本 |
Caddyfile |
Caddy 配置示例模板 |
auto-sync.service |
预留的 systemd 服务样例,当前脚本不会自动安装它 |
| 选项 | 功能 |
|---|---|
1 |
安装 sing-box |
2 |
设置 vmess 节点 |
3 |
设置 vless 节点 |
4 |
修改节点配置(会先选择 vmess 或 vless) |
5 |
查看节点信息 |
6 |
查看订阅链接 |
7 |
查看服务状态 |
8 |
重启服务 |
9 |
卸载 |
10 |
配置 HTTPS 订阅(Caddy) |
0 |
退出 |
1 安装 → 2 设置 vmess 节点 → 3 设置 vless 节点(可选,共存)→ 10 配置 Caddy HTTPS 在线订阅
推荐操作:
- 第一次设置节点时,选择:
是否安装 CF Tunnel?→y- 按提示完成 Tunnel 配置
- 后续再新增第二个节点时,仍然选择:
是否安装 CF Tunnel?→y- 如果脚本检测到已有 Tunnel,再选择:
是否重新配置?→n
这样脚本会:
- 复用已有 Tunnel
- 不重复创建 Tunnel
- 让两个节点都按 CF Tunnel 模式正常下发订阅
- 在这种模式下:
- 节点自己的
Host可以各自不同 SNI/servername与各自节点的Host一致
- 节点自己的
那就在设置节点时选择:
是否安装 CF Tunnel?→n
脚本会按非 Tunnel 模式生成节点。
脚本会将订阅文件生成到 /etc/s-box/sub/:
base64.txt:Base64 编码后的通用订阅links.txt:原始分享链接明文列表clash.yamlmihomo.yamlsingbox.jsonoutbounds.json
如果同时配置了 vmess 和 vless,这些订阅文件会同时包含两个节点。
- 通用:
https://你的订阅域名 - Base64:
https://你的订阅域名?type=base64 - Clash/Mihomo:
https://你的订阅域名?type=clash - Sing-box:
https://你的订阅域名?type=singbox
- 单脚本部署方案,核心逻辑集中在
install.sh - 在线订阅由
Caddy静态分发,不依赖 Python 4 节点修改会先让你选择要操作vmess还是vless5 查看节点会同时显示当前已配置的所有节点- 删除最后一个节点时,会自动清理本地节点配置、订阅文件与相关残留状态
- 删除节点前会显示当前节点的协议、端口与 Host 供确认
- 脚本会自动重建
/etc/s-box/nodes等运行目录,避免卸载后再次设置时报错