基础配置(实验功能)
⚠️ 如果你尚不了解 Sing-Box/Clash/Surge 的配置结构,请不要启用此功能。当前仍处在实验阶段,可能会遇到不可预期的问题。
Sublink Worker 允许你上传自定义的基础配置,在转换订阅时作为模板套用。该能力面向高级用户,默认保留 30 天并存储在 KV 中。
功能概览
- 支持 Sing-Box、Clash、Surge 三种配置模板。
- 在前端或
/configAPI 中粘贴配置内容,即可生成唯一configId。 - 请求
/singbox、/clash、/surge时附带configId,即可在生成配置时使用自定义模板。 - KV 中的配置将进行格式校验,失败会返回 400。
默认模板
Sing-Box
json
{
"dns": {
"servers": [
{ "type": "tcp", "tag": "dns_proxy", "server": "1.1.1.1", "detour": "🚀 节点选择", "domain_resolver": "dns_resolver" },
{ "type": "https", "tag": "dns_direct", "server": "dns.alidns.com", "domain_resolver": "dns_resolver" },
{ "type": "udp", "tag": "dns_resolver", "server": "223.5.5.5" },
{ "type": "fakeip", "tag": "dns_fakeip", "inet4_range": "198.18.0.0/15", "inet6_range": "fc00::/18" }
],
"rules": [
{ "rule_set": "geolocation-!cn", "query_type": ["A", "AAAA"], "server": "dns_fakeip" },
{ "rule_set": "geolocation-!cn", "query_type": ["CNAME"], "server": "dns_proxy" },
{ "query_type": ["A", "AAAA", "CNAME"], "invert": true, "action": "predefined", "rcode": "REFUSED" }
],
"final": "dns_direct",
"independent_cache": true
},
"ntp": { "enabled": true, "server": "time.apple.com", "server_port": 123, "interval": "30m" },
"inbounds": [
{ "type": "mixed", "tag": "mixed-in", "listen": "0.0.0.0", "listen_port": 2080 },
{ "type": "tun", "tag": "tun-in", "address": "172.19.0.1/30", "auto_route": true, "strict_route": true, "stack": "mixed", "sniff": true },
{ "type": "socks", "listen": "127.0.0.1", "listen_port": 2081, "tag": "REJECT-in" }
],
"outbounds": [
{ "type": "socks", "server": "127.0.0.1", "server_port": 2081, "tag": "REJECT" },
{ "type": "direct", "tag": "DIRECT" }
],
"route": {
"default_domain_resolver": "dns_resolver",
"rule_set": [
{ "tag": "geosite-geolocation-!cn", "type": "local", "format": "binary", "path": "geosite-geolocation-!cn.srs" }
],
"rules": [ { "inbound": ["DIRECT-in"], "action": "direct" } ]
},
"experimental": {
"cache_file": { "enabled": true, "store_fakeip": true },
"clash_api": { "external_controller": "127.0.0.1:9090", "external_ui": "dashboard" }
}
}Clash
yaml
port: 7890
socks-port: 7891
allow-lan: false
mode: Rule
log-level: info
dns:
enable: true
ipv6: true
respect-rules: true
enhanced-mode: fake-ip
nameserver:
- https://120.53.53.53/dns-query
- https://223.5.5.5/dns-query
proxy-server-nameserver:
- https://120.53.53.53/dns-query
- https://223.5.5.5/dns-query
nameserver-policy:
geosite:cn,private:
"https://120.53.53.53/dns-query"
"https://223.5.5.5/dns-query"
geosite:geolocation-!cn:
"https://dns.cloudflare.com/dns-query"
"https://dns.google/dns-query"Surge
Surge 的基础配置既可以使用 JSON,也可以使用 Surge 原生的 INI/Conf 格式。通过前端保存时,INI 内容会自动转换为 JSON 并存入 KV。下面示例与仓库默认
SURGE_CONFIG保持一致,可直接作为自定义的起点。
json
{
"general": {
"allow-wifi-access": false,
"wifi-access-http-port": 6152,
"wifi-access-socks5-port": 6153,
"http-listen": "127.0.0.1:6152",
"socks5-listen": "127.0.0.1:6153",
"allow-hotspot-access": false,
"skip-proxy": "127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,100.64.0.0/10,17.0.0.0/8,localhost,*.local,*.crashlytics.com,seed-sequoia.siri.apple.com,sequoia.apple.com",
"test-timeout": 5,
"proxy-test-url": "http://cp.cloudflare.com/generate_204",
"internet-test-url": "http://www.apple.com/library/test/success.html",
"geoip-maxmind-url": "https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb",
"ipv6": false,
"show-error-page-for-reject": true,
"dns-server": "119.29.29.29, 180.184.1.1, 223.5.5.5, system",
"encrypted-dns-server": "https://223.5.5.5/dns-query",
"exclude-simple-hostnames": true,
"read-etc-hosts": true,
"always-real-ip": "*.msftconnecttest.com, *.msftncsi.com, *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com, *.xboxlive.com, *.logon.battlenet.com.cn, *.logon.battle.net, stun.l.google.com, easy-login.10099.com.cn,*-update.xoyocdn.com, *.prod.cloud.netflix.com, appboot.netflix.com, *-appboot.netflix.com",
"hijack-dns": "*:53",
"udp-policy-not-supported-behaviour": "REJECT",
"hide-vpn-icon": false
},
"replica": {
"hide-apple-request": true,
"hide-crashlytics-request": true,
"use-keyword-filter": false,
"hide-udp": false
}
}约束与最佳实践
- 格式要求
- Sing-Box 模板必须是有效 JSON;Surge 模板可为 JSON 或有效的 Surge INI/Conf(UI 会自动转换为 JSON);Clash 模板必须是有效 YAML。
- 各客户端配置不可混用,不会自动转换缺失字段。
- 保留字段
- 系统不会自动添加
block、direct等节点,请确保在模板内声明。 - 建议仅调整 DNS、NTP、代理策略等模块,保持核心结构稳定。
- 系统不会自动添加
- 保存与分享
- 点击前端的 “保存基础配置” 按钮或调用
/configAPI。 - 成功后会返回
configId,在访问 URL 中附加configId=xxx即可复用。
- 点击前端的 “保存基础配置” 按钮或调用
- 验证流程
- 提交前可利用本地客户端验证格式。
- 保存时若校验失败,接口会返回 400 与错误原因。
API 示例:保存配置
bash
curl -X POST https://<worker-domain>/config \
-H 'Content-Type: application/json' \
-d '{
"type": "clash",
"content": "port: 7890\\nmode: Rule"
}'返回值类似
{"configId": "clash_abc123"},可在/clash?config=<...>&configId=clash_abc123中直接引用。