1
0
mirror of https://github.com/nitezs/sub2sing-box.git synced 2024-12-23 15:04:41 -05:00
将节点和订阅转换为 sing-box 配置
Go to file
2024-10-21 15:56:12 +08:00
.github/workflows ⬆️ Update to go 1.23 2024-10-03 03:18:24 +08:00
.vscode add: template 2024-03-11 19:50:21 +08:00
api 💥 Remvoe default templates in docker image\n🐛 Fix version command error 2024-10-21 15:39:49 +08:00
cmd 📝 Modify README 2024-10-21 15:56:12 +08:00
common ⬆ Upgrade dependences 2024-10-20 00:46:01 +08:00
constant Auto detect if need country group 2024-10-01 01:27:22 +08:00
model ♻️ Refactor 2024-10-03 01:24:54 +08:00
parser 🐛 Fix cannot parse shadowsocks with base64 encoded 2024-10-09 11:37:28 +08:00
templates 💥 Remvoe default templates in docker image\n🐛 Fix version command error 2024-10-21 15:39:49 +08:00
util ️ Improve 2024-08-05 15:01:05 +08:00
.gitignore ️ Refactor some parsers 2024-08-04 17:01:09 +08:00
.goreleaser.yaml ⬆️ Update to go 1.23 2024-10-09 13:49:02 +08:00
docker-compose.yaml 📝 Modify README and docker compose 2024-10-03 01:43:42 +08:00
Dockerfile 💥 Remvoe default templates in docker image\n🐛 Fix version command error 2024-10-21 15:39:49 +08:00
go.mod ⬆ Upgrade dependences 2024-10-20 00:46:01 +08:00
go.sum ⬆ Upgrade dependences 2024-10-20 00:46:01 +08:00
LICENSE fix: docker 2024-03-19 02:54:03 +08:00
main.go 🐛Fix #9 2024-09-19 18:12:24 +08:00
merge-templates.sh 📝 Modify templates 2024-10-20 19:05:22 +08:00
README.md 📝 Modify README 2024-10-21 15:56:12 +08:00

sub2sing-box

将订阅/节点连接转换为 sing-box 配置的工具。

控制台命令

使用 sub2sing-box <command> -h 查看各命令的帮助信息。

配置

示例:

{
  "subscriptions": ["订阅地址1", "订阅地址2"],
  "proxies": ["代理1", "代理2"],
  "template": "模板路径或网络地址",
  "delete": "剩余流量",
  "rename": { "原文本": "新文本" },
  "group-type": "selector",
  "sort": "name",
  "sort-type": "asc",
  "output": "./config.json"
}

将上述 JSON 内容保存为 sub2sing-box.json,执行:

sub2sing-box convert -c ./sub2sing-box.json

即可生成 sing-box 配置,无需每次重复设置参数。

模板

默认模板

默认模板位于 templates 目录,使用 tun 配置,可以根据需求自行修改模板内容。

占位符

模板中可使用以下占位符:

  • <all-proxy-tags>: 插入所有节点标签
  • <all-country-tags>: 插入所有国家标签
  • <国家(地区)二字码>: 插入指定国家(地区)所有节点标签,如 <tw>

占位符使用示例:

假设有节点:

  • US
  • SG
  • TW
{
  "type": "selector",
  "tag": "节点选择",
  "outbounds": ["<all-proxy-tags>", "direct"],
  "interrupt_exist_connections": true
}

// 转换后

{
  "type": "selector",
  "tag": "节点选择",
  "outbounds": ["US", "SG", "TW", "direct"],
  "interrupt_exist_connections": true
}
{
  "type": "selector",
  "tag": "节点选择",
  "outbounds": ["<all-country-tags>", "direct"],
  "interrupt_exist_connections": true
}

// 转换后

{
  "type": "selector",
  "tag": "节点选择",
  "outbounds": ["美国(US)", "新加坡(SG)", "台湾(TW)", "direct"],
  "interrupt_exist_connections": true
}

// 其中 "美国(US)", "新加坡(SG)", "台湾(TW)" 为策略组,分别包含 US, SG, TW 节点
{
  "type": "selector",
  "tag": "巴哈姆特",
  "outbounds": ["<tw>", "direct"],
  "interrupt_exist_connections": true
}

// 转换后

{
  "type": "selector",
  "tag": "巴哈姆特",
  "outbounds": ["台湾(TW)", "direct"],
  "interrupt_exist_connections": true
}

Docker 使用

docker run -p 8080:8080 nite07/sub2sing-box:latest

可以挂载目录添加自定义模板

Server 模式 API

GET /convert

query 描述
data 同上方配置,但需要使用 base64 URL safe 编码