diff --git a/fixtures/external/compatibility-report.md b/fixtures/external/compatibility-report.md index f93b0ff8..4857aa11 100644 --- a/fixtures/external/compatibility-report.md +++ b/fixtures/external/compatibility-report.md @@ -1,9 +1,9 @@ # External Fixture Compatibility Report -Accepted fixtures: 220 -Official binary pass: 34 +Accepted fixtures: 237 +Official binary pass: 42 Official binary warning and treated as display/template-compatible: 2 -Official binary failed and treated as display/template-compatible: 40 +Official binary failed and treated as display/template-compatible: 49 Official binary not applicable: 144 Official binary missing during report generation: 0 @@ -12,24 +12,24 @@ Official binary missing during report generation: 0 - display: 73 - display-extension: 29 - legacy: 87 -- stable: 13 +- stable: 14 - stable-extension: 1 -- testing: 1 +- testing: 17 - testing-extension: 16 ## Accepted By Detected Version - 1.11: 42 - 1.12: 45 -- 1.13: 14 -- 1.14: 17 +- 1.13: 15 +- 1.14: 33 - unknown: 102 ## Official Check Failures By Version - 1.12: 22 - 1.13: 4 -- 1.14: 16 +- 1.14: 25 ## Notes diff --git a/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-3fe87d44.json b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-3fe87d44.json new file mode 100644 index 00000000..88e10288 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-3fe87d44.json @@ -0,0 +1 @@ +{"log":{"level":"trace","output":"/dev/null","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"dns_hosts","predefined":{"mtalk.google.com":["2404:6800:4008:c07::bc","2404:6800:4008:c1b::bc","2404:6800:4008:c15::bc","2404:6800:4008:c05::bc","2404:6800:4008:c19::bc","2404:6800:4008:c01::bc","2607:f8b0:4023:1c05::bc","2607:f8b0:400e:c09::bc","142.250.107.188","142.251.170.188","108.177.125.188","142.251.10.188","64.233.186.188","74.125.206.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","2a00:1450:400b:c02::bc","74.125.200.188"],"alt2-mtalk.google.com":"192.178.220.188","alt3-mtalk.google.com":["2607:f8b0:4023:2009::bc","2607:f8b0:4023:100f::bc","74.125.131.188"],"alt4-mtalk.google.com":"209.85.144.188","alt5-mtalk.google.com":["2607:f8b0:4003:c0a::bc","2a00:1450:4025:c01::bc","74.125.126.188"],"alt6-mtalk.google.com":"142.250.115.188","alt7-mtalk.google.com":["2607:f8b0:4024:c0d::bc","2404:6800:4003:c06::bc","192.178.131.188"],"alt8-mtalk.google.com":"172.253.132.188","dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33","dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"dns.quad9.net":["149.112.112.112","9.9.9.9"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"raw.githubusercontent.com":["185.199.108.133","185.199.109.133","185.199.110.133","185.199.111.133"],"cdn.jsdelivr.net":["104.16.89.20","104.16.90.20"]}},{"type":"https","tag":"tx_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"quic","tag":"ali_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"google_dns","detour":"๐Ÿ“ฆ CATCH_ALL","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"quad9_dns","detour":"๐Ÿ“ฆ CATCH_ALL","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"h3","tag":"cloudflare_dns","detour":"๐Ÿ“ฆ CATCH_ALL","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"group","tag":"direct_server","servers":["ali_dns","tx_dns"]},{"type":"group","tag":"proxy_server","servers":["google_dns","quad9_dns","cloudflare_dns"]},{"type":"fakeip","tag":"fakeip_server","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"}],"rules":[{"domain":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com","dl.google.com","dl.l.google.com"],"server":"dns_hosts"},{"clash_mode":"Global","server":"proxy_server"},{"clash_mode":"Direct","server":"direct_server"},{"query_type":["SVCB","HTTPS","PTR"],"action":"predefined","rcode":"NOERROR"},{"type":"logical","mode":"and","rules":[{"clash_mode":"AllowAds","invert":true},{"domain":["a0.app.xiaomi.com","appversion.115.com"],"rule_set":"geosite-category-ads-all"}],"action":"predefined","rcode":"NOERROR"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"rule_set":["cn","private"],"server":"direct_server"},{"action":"evaluate","server":"proxy_server"},{"match_response":true,"action":"respond"}],"final":"proxy_server","strategy":"prefer_ipv4","cache_capacity":4096,"optimistic":{"enabled":true,"timeout":"120h0m0s"}},"http_clients":[{"tag":"direct_client","version":2,"stream_receive_window":0,"connection_receive_window":0},{"tag":"proxy_client","version":2,"detour":"๐Ÿ“ฆ CATCH_ALL","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"redirect","tag":"redirect-in","listen":"::","listen_port":7897},{"type":"mixed","tag":"mixed-in","listen":"::","listen_port":7890},{"type":"tun","tag":"tun-in","interface_name":"tun0","mtu":9000,"address":["172.19.0.1/30","fdfe:dcba:9876::1/126"],"auto_route":true,"auto_redirect":true,"strict_route":true,"stack":"system"}],"outbounds":[{"type":"selector","tag":"๐Ÿ“ฆ CATCH_ALL","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿงญ Google Services","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“ฌ Google FCM","outbounds":["direct","๐Ÿงญ Google Services"]},{"type":"selector","tag":"๐ŸŽ Apple","outbounds":["direct","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“บ StreamingME","outbounds":["direct","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸชŸ Microsoft","outbounds":["direct","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“  Telegram","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"default":"๐Ÿ‡จ๐Ÿ‡ณ All Nodes","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ‡จ๐Ÿ‡ณ All Nodes","use_all_providers":true,"outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"interrupt_exist_connections":true},{"type":"selector","tag":"GLOBAL","outbounds":["๐Ÿ“ฆ CATCH_ALL","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"]},{"type":"direct","tag":"direct","domain_resolver":"direct_server"},{"type":"socks","tag":"mock-hk-01","server":"203.0.113.11","server_port":1080},{"type":"socks","tag":"mock-jp-01","server":"203.0.113.12","server_port":1080},{"type":"socks","tag":"mock-sg-01","server":"203.0.113.13","server_port":1080}],"providers":[{"type":"local","tag":"local_nodes","path":"./providers/config.json","health_check":{"enabled":true,"url":"https://www.gstatic.com/generate_204","interval":"1h0m0s","timeout":"3s"}}],"route":{"rules":[{"action":"sniff"},{"ip_cidr":"127.0.0.0/8","port":[7897,7898],"action":"bypass"},{"network":"icmp","outbound":"direct"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"protocol":"dns","action":"hijack-dns"},{"clash_mode":"Global","outbound":"GLOBAL"},{"clash_mode":"Direct","outbound":"direct"},{"rule_set":"geosite-category-ads-all","domain":["abyss.cyapi.cn","ad.cyapi.cn","gather.colorfulclouds.net"],"action":"reject","method":"drop"},{"rule_set":["cn","private"],"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"outbound":"direct"},{"rule_set":["google","twitter","!cn","youtube","github","microsoft","apple","telegram","bahamut"],"outbound":"๐Ÿ“ฆ CATCH_ALL"},{"type":"logical","mode":"or","rules":[{"domain_keyword":["mtalk.google.com","dl.google","dl.l.google"]},{"port":5228}],"outbound":"๐Ÿ“ฌ Google FCM"},{"action":"resolve"},{"rule_set":"cn_ip","outbound":"direct"},{"rule_set":"geosite-geolocation-!cn","outbound":"๐Ÿ“ฆ CATCH_ALL"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-private.srs"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-cn.srs"},{"type":"remote","tag":"google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs"},{"type":"remote","tag":"twitter","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-twitter.srs"},{"type":"remote","tag":"!cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-geolocation-!cn.srs"},{"type":"remote","tag":"youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs"},{"type":"remote","tag":"github","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-github.srs"},{"type":"remote","tag":"microsoft","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-microsoft.srs"},{"type":"remote","tag":"apple","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs"},{"type":"remote","tag":"telegram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs"},{"type":"remote","tag":"bahamut","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-bahamut.srs"},{"type":"remote","tag":"cn_ip","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/cnip.srs"},{"type":"remote","tag":"geosite-geolocation-!cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-geolocation-!cn.srs"}],"final":"๐Ÿ“ฆ CATCH_ALL","find_process":true,"auto_detect_interface":true,"default_domain_resolver":"direct_server","default_http_client":"direct_client","default_domain_match_strategy":"prefer_fqdn"},"experimental":{"cache_file":{"enabled":true,"path":"./cache.db","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"[::]:9090","external_ui":"ui"},"debug":{"gc_percent":100,"memory_limit":"200MB"},"urltest_unified_delay":true}} diff --git a/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-9c3d1b11.json b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-9c3d1b11.json new file mode 100644 index 00000000..540a0984 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-9c3d1b11.json @@ -0,0 +1 @@ +{"log":{"level":"trace","output":"/dev/null","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"dns_hosts","predefined":{"mtalk.google.com":["2404:6800:4008:c07::bc","2404:6800:4008:c1b::bc","2404:6800:4008:c15::bc","2404:6800:4008:c05::bc","2404:6800:4008:c19::bc","2404:6800:4008:c01::bc","2607:f8b0:4023:1c05::bc","2607:f8b0:400e:c09::bc","142.250.107.188","142.251.170.188","108.177.125.188","142.251.10.188","64.233.186.188","74.125.206.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","2a00:1450:400b:c02::bc","74.125.200.188"],"alt2-mtalk.google.com":"192.178.220.188","alt3-mtalk.google.com":["2607:f8b0:4023:2009::bc","2607:f8b0:4023:100f::bc","74.125.131.188"],"alt4-mtalk.google.com":"209.85.144.188","alt5-mtalk.google.com":["2607:f8b0:4003:c0a::bc","2a00:1450:4025:c01::bc","74.125.126.188"],"alt6-mtalk.google.com":"142.250.115.188","alt7-mtalk.google.com":["2607:f8b0:4024:c0d::bc","2404:6800:4003:c06::bc","192.178.131.188"],"alt8-mtalk.google.com":"172.253.132.188","dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33","dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"dns.quad9.net":["149.112.112.112","9.9.9.9"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"raw.githubusercontent.com":["185.199.108.133","185.199.109.133","185.199.110.133","185.199.111.133"],"cdn.jsdelivr.net":["104.16.89.20","104.16.90.20"]}},{"type":"https","tag":"tx_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"quic","tag":"ali_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"google_dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"quad9_dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"h3","tag":"cloudflare_dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"udp","tag":"adguard-dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1","server_port":53},{"type":"group","tag":"direct_server","servers":["ali_dns","tx_dns"]},{"type":"group","tag":"proxy_server","servers":["google_dns","quad9_dns","cloudflare_dns"]},{"type":"fakeip","tag":"fakeip_server","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"}],"rules":[{"rule_set":["geosite-category-ads-all","geosite_adguard"],"action":"predefined","rcode":"NOERROR"},{"domain":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com","dl.google.com","dl.l.google.com"],"server":"dns_hosts"},{"domain_suffix":"connectivitycheck.gstatic.com","server":"fakeip_server"},{"clash_mode":"Global","server":"proxy_server"},{"clash_mode":"Direct","server":"direct_server"},{"query_type":["SVCB","HTTPS","PTR"],"action":"predefined","rcode":"NOERROR"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"rule_set":["cn","private"],"server":"direct_server"},{"rule_set":["geosite-google","geosite-youtube","geosite-telegram","geosite-twitter","geosite-github","geosite-microsoft","geosite-apple","geosite-bahamut","Proxy","gfw"],"server":"proxy_server"},{"action":"evaluate","server":"direct_server"},{"match_response":true,"action":"respond"}],"final":"adguard-dns","strategy":"prefer_ipv4","cache_capacity":65536,"optimistic":{"enabled":true,"timeout":"120h0m0s"}},"http_clients":[{"tag":"direct_client","version":2,"stream_receive_window":0,"connection_receive_window":0},{"tag":"proxy_client","version":2,"detour":"๐Ÿ“ฆ sing-box","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"redirect","tag":"redirect-in","listen":"::","listen_port":7897},{"type":"mixed","tag":"mixed-in","listen":"::","listen_port":7890},{"type":"tun","tag":"tun-in","interface_name":"tun0","mtu":9000,"address":["172.19.0.1/30","fdfe:dcba:9876::1/126"],"auto_route":true,"auto_redirect":true,"strict_route":true,"stack":"system"}],"outbounds":[{"type":"selector","tag":"๐Ÿšฆ FINAL","outbounds":["๐Ÿ“ฆ sing-box","๐Ÿ‡จ๐Ÿ‡ณ DIRECT","โŒ REJECT-DROP"],"providers":null,"default":"โŒ REJECT-DROP","interrupt_exist_connections":true},{"type":"block","tag":"โŒ REJECT-DROP"},{"type":"selector","tag":"๐Ÿ“ฆ sing-box","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿงญ Google Services","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“ฌ Google FCM","outbounds":["๐Ÿ“ฆ sing-box","๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿงญ Google Services"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸŽ Apple","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿ“ฆ sing-box"],"providers":null,"default":"๐Ÿ‡จ๐Ÿ‡ณ DIRECT","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“บ StreamingME","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸชŸ Microsoft","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“  Telegram","outbounds":["๐Ÿ“ฆ sing-box"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ‡จ๐Ÿ‡ณ DIRECT","outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"providers":null,"use_all_providers":true,"interrupt_exist_connections":true},{"type":"selector","tag":"GLOBAL","outbounds":["๐Ÿ“ฆ sing-box","๐Ÿ‡จ๐Ÿ‡ณ DIRECT"],"providers":null,"default":"๐Ÿ“ฆ sing-box"},{"type":"direct","tag":"direct","domain_resolver":"direct_server"},{"type":"socks","tag":"mock-hk-01","server":"203.0.113.11","server_port":1080},{"type":"socks","tag":"mock-jp-01","server":"203.0.113.12","server_port":1080},{"type":"socks","tag":"mock-sg-01","server":"203.0.113.13","server_port":1080}],"providers":[{"type":"remote","tag":"my_nodes","url":"ไฝ ็š„่ฎข้˜…้“พๆŽฅ","path":"./providers/my_nodes.json","http_client":"direct_client","update_interval":"24h0m0s","health_check":{"enabled":true,"url":"https://www.gstatic.com/generate_204","interval":"1h0m0s","timeout":"3s"}}],"route":{"rules":[{"action":"sniff"},{"ip_cidr":"127.0.0.0/8","port":[7897,7898],"action":"bypass"},{"network":"icmp","outbound":"direct"},{"protocol":"dns","action":"hijack-dns"},{"package_name":["com.tencent.mm","com.tencent.mobileqq","com.alibaba.android.rimet","com.eg.android.AlipayGphone","com.netease.cloudmusic"],"outbound":"direct"},{"domain":"dns.weixin.qq.com.cn","outbound":"direct"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"rule_set":["cn","private","cnip","apple-cn","microsoft-cn","google-cn","games-cn"],"outbound":"direct"},{"clash_mode":"Global","outbound":"GLOBAL"},{"clash_mode":"Direct","outbound":"direct"},{"rule_set":["geosite-category-ads-all","geosite_adguard","Ads","DNSreject"],"action":"reject","method":"drop"},{"domain":["abyss.cyapi.cn","ad.cyapi.cn"],"action":"reject","method":"drop"},{"domain_suffix":"connectivitycheck.gstatic.com","outbound":"๐Ÿ“ฆ sing-box"},{"domain":"gather.colorfulclouds.net","outbound":"๐Ÿ“ฆ sing-box"},{"ip_cidr":"198.18.0.0/15","outbound":"๐Ÿ“ฆ sing-box"},{"rule_set":["geosite-google","geosite-youtube","geosite-twitter","geosite-github","geosite-microsoft","geosite-apple","geosite-telegram","geosite-bahamut","Proxy","gfw","telegramip","telegram_ip"],"outbound":"๐Ÿ“ฆ sing-box"},{"package_name":["org.telegram.group","org.telegram.messenger","org.telegram.messenger.beta","com.google.android.youtube","app.revanced.android.youtube"],"outbound":"๐Ÿ“ฆ sing-box"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"type":"logical","mode":"or","rules":[{"domain_keyword":["mtalk.google.com","dl.google","dl.l.google"]},{"port":5228}],"outbound":"๐Ÿ“ฌ Google FCM"},{"action":"resolve"},{"rule_set":"cnip","outbound":"direct"},{"rule_set":"Proxy","outbound":"๐Ÿ“ฆ sing-box"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite_adguard","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"Ads","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/ads.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"DNSreject","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/AdGuardSDNSFilter/AdGuardSDNSFilter.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-private.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"google-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-twitter","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-twitter.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-github","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-github.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-microsoft","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-microsoft.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-apple","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-telegram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-bahamut","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-bahamut.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"Proxy","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"gfw","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/gfw.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"telegramip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram_ip","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geoip/telegram.srs","http_client":"direct_client","update_interval":"48h0m0s"}],"final":"๐Ÿšฆ FINAL","find_process":true,"auto_detect_interface":true,"default_domain_resolver":"direct_server","default_http_client":"direct_client","default_domain_match_strategy":"prefer_fqdn"},"experimental":{"cache_file":{"enabled":true,"path":"./cache.db","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"[::]:9090","external_ui":"ui"},"debug":{"gc_percent":100,"memory_limit":"200MB"},"urltest_unified_delay":true}} diff --git a/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-b34f25f1.json b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-b34f25f1.json new file mode 100644 index 00000000..f57bbd8e --- /dev/null +++ b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-b34f25f1.json @@ -0,0 +1 @@ +{"log":{"level":"trace","output":"/dev/null","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"dns_hosts","predefined":{"mtalk.google.com":["2404:6800:4008:c07::bc","2404:6800:4008:c1b::bc","2404:6800:4008:c15::bc","2404:6800:4008:c05::bc","2404:6800:4008:c19::bc","2404:6800:4008:c01::bc","2607:f8b0:4023:1c05::bc","2607:f8b0:400e:c09::bc","142.250.107.188","142.251.170.188","108.177.125.188","142.251.10.188","64.233.186.188","74.125.206.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","2a00:1450:400b:c02::bc","74.125.200.188"],"alt2-mtalk.google.com":"192.178.220.188","alt3-mtalk.google.com":["2607:f8b0:4023:2009::bc","2607:f8b0:4023:100f::bc","74.125.131.188"],"alt4-mtalk.google.com":"209.85.144.188","alt5-mtalk.google.com":["2607:f8b0:4003:c0a::bc","2a00:1450:4025:c01::bc","74.125.126.188"],"alt6-mtalk.google.com":"142.250.115.188","alt7-mtalk.google.com":["2607:f8b0:4024:c0d::bc","2404:6800:4003:c06::bc","192.178.131.188"],"alt8-mtalk.google.com":"172.253.132.188","dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33","dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"dns.quad9.net":["149.112.112.112","9.9.9.9"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"raw.githubusercontent.com":["185.199.108.133","185.199.109.133","185.199.110.133","185.199.111.133"],"cdn.jsdelivr.net":["104.16.89.20","104.16.90.20"]}},{"type":"https","tag":"tx_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"quic","tag":"ali_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"google_dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"quad9_dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"h3","tag":"cloudflare_dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"group","tag":"direct_server","servers":["ali_dns","tx_dns"]},{"type":"group","tag":"proxy_server","servers":["google_dns","quad9_dns","cloudflare_dns"]},{"type":"fakeip","tag":"fakeip_server","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"}],"rules":[{"rule_set":["geosite-category-ads-all","geosite_adguard"],"action":"predefined","rcode":"NOERROR"},{"domain":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com","dl.google.com","dl.l.google.com"],"server":"dns_hosts"},{"clash_mode":"Global","server":"proxy_server"},{"clash_mode":"Direct","server":"direct_server"},{"query_type":["SVCB","HTTPS","PTR"],"action":"predefined","rcode":"NOERROR"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"rule_set":["cn","private"],"server":"direct_server"},{"rule_set":["geosite-google","geosite-youtube","geosite-telegram","geosite-twitter","geosite-github","geosite-microsoft","geosite-apple","geosite-bahamut","Proxy","gfw"],"server":"fakeip_server"},{"action":"evaluate","server":"proxy_server"},{"match_response":true,"action":"respond"}],"final":"proxy_server","strategy":"prefer_ipv4","cache_capacity":65536,"optimistic":{"enabled":true,"timeout":"120h0m0s"}},"http_clients":[{"tag":"direct_client","version":2,"stream_receive_window":0,"connection_receive_window":0},{"tag":"proxy_client","version":2,"detour":"๐Ÿ“ฆ sing-box","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"redirect","tag":"redirect-in","listen":"::","listen_port":7897},{"type":"mixed","tag":"mixed-in","listen":"::","listen_port":7890},{"type":"tun","tag":"tun-in","interface_name":"tun0","mtu":9000,"address":["172.19.0.1/30","fdfe:dcba:9876::1/126"],"auto_route":true,"auto_redirect":true,"strict_route":true,"stack":"system"}],"outbounds":[{"type":"selector","tag":"๐Ÿšฆ FINAL","outbounds":["๐Ÿ“ฆ sing-box","๐Ÿ‡จ๐Ÿ‡ณ DIRECT","โŒ REJECT-DROP"],"providers":null,"default":"โŒ REJECT-DROP","interrupt_exist_connections":true},{"type":"block","tag":"โŒ REJECT-DROP"},{"type":"selector","tag":"๐Ÿ“ฆ sing-box","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿงญ Google Services","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“ฌ Google FCM","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿงญ Google Services"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸŽ Apple","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“บ StreamingME","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸชŸ Microsoft","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ DIRECT","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“  Telegram","outbounds":["๐Ÿ“ฆ sing-box"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ‡จ๐Ÿ‡ณ DIRECT","outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"providers":null,"use_all_providers":true,"interrupt_exist_connections":true},{"type":"selector","tag":"GLOBAL","outbounds":["๐Ÿ“ฆ sing-box","๐Ÿ‡จ๐Ÿ‡ณ DIRECT"],"providers":null,"default":"๐Ÿ“ฆ sing-box"},{"type":"direct","tag":"direct","domain_resolver":"direct_server"},{"type":"socks","tag":"mock-hk-01","server":"203.0.113.11","server_port":1080},{"type":"socks","tag":"mock-jp-01","server":"203.0.113.12","server_port":1080},{"type":"socks","tag":"mock-sg-01","server":"203.0.113.13","server_port":1080}],"providers":[{"type":"remote","tag":"my_nodes","url":"ไฝ ็š„่ฎข้˜…้“พๆŽฅ","path":"./providers/my_nodes.json","http_client":"direct_client","update_interval":"24h0m0s","health_check":{"enabled":true,"url":"https://www.gstatic.com/generate_204","interval":"1h0m0s","timeout":"3s"}}],"route":{"rules":[{"action":"sniff"},{"ip_cidr":"127.0.0.0/8","port":[7897,7898],"action":"bypass"},{"network":"icmp","outbound":"direct"},{"protocol":"dns","action":"hijack-dns"},{"clash_mode":"Global","outbound":"GLOBAL"},{"clash_mode":"Direct","outbound":"direct"},{"domain":["abyss.cyapi.cn","ad.cyapi.cn","gather.colorfulclouds.net"],"rule_set":["geosite-category-ads-all","geosite_adguard","Ads","DNSreject"],"action":"reject","method":"drop"},{"ip_cidr":"198.18.0.0/15","outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"rule_set":["cn","private","cnip","apple-cn","microsoft-cn","google-cn","games-cn"],"outbound":"direct"},{"package_name":["com.tencent.mm","com.tencent.mobileqq","com.alibaba.android.rimet","com.eg.android.AlipayGphone","com.netease.cloudmusic"],"outbound":"direct"},{"domain":"dns.weixin.qq.com.cn","outbound":"direct"},{"rule_set":["geosite-google","geosite-youtube","geosite-twitter","geosite-github","geosite-microsoft","geosite-apple","geosite-telegram","geosite-bahamut","Proxy","gfw","telegramip","telegram_ip"],"outbound":"๐Ÿ“ฆ sing-box"},{"package_name":["org.telegram.group","org.telegram.messenger","org.telegram.messenger.beta","com.google.android.youtube","app.revanced.android.youtube"],"outbound":"๐Ÿ“ฆ sing-box"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"type":"logical","mode":"or","rules":[{"domain_keyword":["mtalk.google.com","dl.google","dl.l.google"]},{"port":5228}],"outbound":"๐Ÿ“ฌ Google FCM"},{"action":"resolve"},{"rule_set":"cnip","outbound":"direct"},{"rule_set":"Proxy","outbound":"๐Ÿ“ฆ sing-box"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite_adguard","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"Ads","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/ads.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"DNSreject","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/AdGuardSDNSFilter/AdGuardSDNSFilter.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-private.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"google-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-twitter","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-twitter.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-github","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-github.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-microsoft","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-microsoft.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-apple","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-telegram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-bahamut","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-bahamut.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"Proxy","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"gfw","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/gfw.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"telegramip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"direct_client","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram_ip","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geoip/telegram.srs","http_client":"direct_client","update_interval":"48h0m0s"}],"final":"๐Ÿšฆ FINAL","find_process":true,"auto_detect_interface":true,"default_domain_resolver":"direct_server","default_http_client":"direct_client","default_domain_match_strategy":"prefer_fqdn"},"experimental":{"cache_file":{"enabled":true,"path":"./cache.db","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"[::]:9090","external_ui":"ui"},"debug":{"gc_percent":100,"memory_limit":"200MB"},"urltest_unified_delay":true}} diff --git a/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.refnd-.json-949a0750.json b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.refnd-.json-949a0750.json new file mode 100644 index 00000000..28852a0d --- /dev/null +++ b/fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.refnd-.json-949a0750.json @@ -0,0 +1 @@ +{"log":{"level":"trace","output":"/dev/null","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"dns_hosts","predefined":{"mtalk.google.com":["2404:6800:4008:c07::bc","2404:6800:4008:c1b::bc","2404:6800:4008:c15::bc","2404:6800:4008:c05::bc","2404:6800:4008:c19::bc","2404:6800:4008:c01::bc","2607:f8b0:4023:1c05::bc","2607:f8b0:400e:c09::bc","142.250.107.188","142.251.170.188","108.177.125.188","142.251.10.188","64.233.186.188","74.125.206.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","2a00:1450:400b:c02::bc","74.125.200.188"],"alt2-mtalk.google.com":"192.178.220.188","alt3-mtalk.google.com":["2607:f8b0:4023:2009::bc","2607:f8b0:4023:100f::bc","74.125.131.188"],"alt4-mtalk.google.com":"209.85.144.188","alt5-mtalk.google.com":["2607:f8b0:4003:c0a::bc","2a00:1450:4025:c01::bc","74.125.126.188"],"alt6-mtalk.google.com":"142.250.115.188","alt7-mtalk.google.com":["2607:f8b0:4024:c0d::bc","2404:6800:4003:c06::bc","192.178.131.188"],"alt8-mtalk.google.com":"172.253.132.188","dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33","dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"dns.quad9.net":["149.112.112.112","9.9.9.9"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"raw.githubusercontent.com":["185.199.108.133","185.199.109.133","185.199.110.133","185.199.111.133"],"cdn.jsdelivr.net":["104.16.89.20","104.16.90.20"]}},{"type":"https","tag":"tx_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"quic","tag":"ali_dns","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"google_dns","detour":"๐Ÿ“ฆ CATCH_ALL","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"https","tag":"quad9_dns","detour":"๐Ÿ“ฆ CATCH_ALL","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"h3","tag":"cloudflare_dns","detour":"๐Ÿ“ฆ CATCH_ALL","domain_resolver":"dns_hosts","server":"1.1.1.1"},{"type":"group","tag":"direct_server","servers":["ali_dns","tx_dns"]},{"type":"group","tag":"proxy_server","servers":["google_dns","quad9_dns","cloudflare_dns"]},{"type":"fakeip","tag":"fakeip_server","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"}],"rules":[{"domain":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com","dl.google.com","dl.l.google.com"],"server":"dns_hosts"},{"clash_mode":"Global","server":"proxy_server"},{"clash_mode":"Direct","server":"direct_server"},{"query_type":["SVCB","HTTPS","PTR"],"action":"predefined","rcode":"NOERROR"},{"type":"logical","mode":"and","rules":[{"clash_mode":"AllowAds","invert":true},{"domain":["a0.app.xiaomi.com","appversion.115.com"],"rule_set":"geosite-category-ads-all"}],"action":"predefined","rcode":"NOERROR"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"rule_set":["cn","private"],"server":"direct_server"},{"action":"evaluate","server":"proxy_server"},{"match_response":true,"action":"respond"}],"final":"proxy_server","strategy":"prefer_ipv4","cache_capacity":4096,"optimistic":{"enabled":true,"timeout":"120h0m0s"}},"http_clients":[{"tag":"direct_client","version":2,"stream_receive_window":0,"connection_receive_window":0},{"tag":"proxy_client","version":2,"detour":"๐Ÿ“ฆ CATCH_ALL","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"redirect","tag":"redirect-in","listen":"::","listen_port":7897},{"type":"mixed","tag":"mixed-in","listen":"::","listen_port":7890},{"type":"tun","tag":"tun-in","interface_name":"tun0","mtu":9000,"address":["172.19.0.1/30","fdfe:dcba:9876::1/126"],"auto_route":true,"auto_redirect":true,"strict_route":true,"stack":"system"}],"outbounds":[{"type":"selector","tag":"๐Ÿ“ฆ CATCH_ALL","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿงญ Google Services","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“ฌ Google FCM","outbounds":["direct","๐Ÿงญ Google Services"]},{"type":"selector","tag":"๐ŸŽ Apple","outbounds":["direct","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“บ StreamingME","outbounds":["direct","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸชŸ Microsoft","outbounds":["direct","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“  Telegram","outbounds":["๐Ÿ‡จ๐Ÿ‡ณ All Nodes"],"default":"๐Ÿ‡จ๐Ÿ‡ณ All Nodes","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ‡จ๐Ÿ‡ณ All Nodes","use_all_providers":true,"outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"interrupt_exist_connections":true},{"type":"selector","tag":"GLOBAL","outbounds":["๐Ÿ“ฆ CATCH_ALL","๐Ÿ‡จ๐Ÿ‡ณ All Nodes"]},{"type":"direct","tag":"direct","domain_resolver":"direct_server"},{"type":"socks","tag":"mock-hk-01","server":"203.0.113.11","server_port":1080},{"type":"socks","tag":"mock-jp-01","server":"203.0.113.12","server_port":1080},{"type":"socks","tag":"mock-sg-01","server":"203.0.113.13","server_port":1080}],"providers":[{"type":"remote","tag":"my_nodes","url":"ไฝ ็š„่ฎข้˜…้“พๆŽฅ","path":"./providers/config.json","http_client":"direct_client","update_interval":"24h0m0s","health_check":{"enabled":true,"url":"https://www.gstatic.com/generate_204","interval":"1h0m0s","timeout":"3s"}}],"route":{"rules":[{"action":"sniff"},{"ip_cidr":"127.0.0.0/8","port":[7897,7898],"action":"bypass"},{"network":"icmp","outbound":"direct"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"protocol":"dns","action":"hijack-dns"},{"clash_mode":"Global","outbound":"GLOBAL"},{"clash_mode":"Direct","outbound":"direct"},{"rule_set":"geosite-category-ads-all","domain":["abyss.cyapi.cn","ad.cyapi.cn","gather.colorfulclouds.net"],"action":"reject","method":"drop"},{"rule_set":["cn","private"],"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com","tracking.miui.com","steamserver.net"],"outbound":"direct"},{"rule_set":["google","twitter","!cn","youtube","github","microsoft","apple","telegram","bahamut"],"outbound":"๐Ÿ“ฆ CATCH_ALL"},{"type":"logical","mode":"or","rules":[{"domain_keyword":["mtalk.google.com","dl.google","dl.l.google"]},{"port":5228}],"outbound":"๐Ÿ“ฌ Google FCM"},{"action":"resolve"},{"rule_set":"cn_ip","outbound":"direct"},{"rule_set":"geosite-geolocation-!cn","outbound":"๐Ÿ“ฆ CATCH_ALL"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-private.srs"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-cn.srs"},{"type":"remote","tag":"google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs"},{"type":"remote","tag":"twitter","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-twitter.srs"},{"type":"remote","tag":"!cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-geolocation-!cn.srs"},{"type":"remote","tag":"youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs"},{"type":"remote","tag":"github","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-github.srs"},{"type":"remote","tag":"microsoft","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-microsoft.srs"},{"type":"remote","tag":"apple","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs"},{"type":"remote","tag":"telegram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs"},{"type":"remote","tag":"bahamut","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-bahamut.srs"},{"type":"remote","tag":"cn_ip","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/cnip.srs"},{"type":"remote","tag":"geosite-geolocation-!cn","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-geolocation-!cn.srs"}],"final":"๐Ÿ“ฆ CATCH_ALL","find_process":true,"auto_detect_interface":true,"default_domain_resolver":"direct_server","default_http_client":"direct_client","default_domain_match_strategy":"prefer_fqdn"},"experimental":{"cache_file":{"enabled":true,"path":"./cache.db","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"[::]:9090","external_ui":"ui"},"debug":{"gc_percent":100,"memory_limit":"200MB"},"urltest_unified_delay":true}} diff --git a/fixtures/external/huixiao666-pk-box-1.13.xx-1.13.10-11-.json-798c77ac.json b/fixtures/external/huixiao666-pk-box-1.13.xx-1.13.10-11-.json-798c77ac.json new file mode 100644 index 00000000..266a3ee0 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.13.xx-1.13.10-11-.json-798c77ac.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"alidns_udp","type":"udp","server":"1.1.1.1"},{"tag":"ggdns_doh","type":"https","server":"1.1.1.1","detour":"PROXY"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","app-measurement.com","hm.baidu.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com","tracking.miui.com","market.xiaomi.com","lancache.steamcontent.com"],"server":"alidns_udp"},{"domain_suffix":["่Š‚็‚นๅŸŸๅ"],"server":"ggdns_doh"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip","rewrite_ttl":300,"client_subnet":"119.134.100.0/24"},{"domain_suffix":["play.google.com","ggpht.com","googleusercontent.com","android.com"],"server":"fakeip"},{"clash_mode":"direct","server":"alidns_udp"},{"clash_mode":"global","server":"fakeip"}],"final":"ggdns_doh","strategy":"ipv4_only","reverse_mapping":true,"cache_capacity":8000},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://cp.cloudflare.com/","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}}],"route":{"default_domain_resolver":"alidns_udp","rules":[{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"domain_suffix":["miwifi.com"],"outbound":"DIRECT"},{"network_type":"cellular","outbound":"DIRECT"},{"clash_mode":"direct","outbound":"DIRECT"},{"clash_mode":"global","outbound":"GLOBAL"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"domain_suffix":["steamserver.net","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn"],"outbound":"DIRECT"},{"rule_set":["geosite-google","telegramip","proxy","games","ai"],"outbound":"PROXY"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube","org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","download_detour":"PROXY","update_interval":"48h"}],"final":"PROXY","auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://cdn.jsdelivr.net/gh/MetaCubeX/metacubexd@gh-pages/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_fakeip":true}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.12-16-ref1nd.json-3f43b8d5.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.12-16-ref1nd.json-3f43b8d5.json new file mode 100644 index 00000000..44c80d33 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.12-16-ref1nd.json-3f43b8d5.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"hosts_fix","type":"hosts","predefined":{"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"]}},{"tag":"alidns","type":"quic","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"DIRECT"},{"tag":"ggdns","type":"https","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"PROXY"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","app-measurement.com","hm.baidu.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com","tracking.miui.com","market.xiaomi.com","lancache.steamcontent.com"],"server":"alidns"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip","rewrite_ttl":300,"client_subnet":"119.134.100.0/24"},{"domain_suffix":["play.google.com","ggpht.com","googleusercontent.com","android.com"],"server":"fakeip"},{"clash_mode":["direct"],"server":"alidns"},{"clash_mode":["global"],"server":"fakeip"}],"final":"ggdns","strategy":"prefer_ipv4","reverse_mapping":true,"cache_capacity":16000},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://www.gstatic.com/generate_204","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}}],"route":{"default_domain_resolver":"alidns","rules":[{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"domain_suffix":["miwifi.com"],"outbound":"DIRECT"},{"clash_mode":["direct"],"outbound":"DIRECT"},{"clash_mode":["global"],"outbound":"GLOBAL"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"domain_suffix":["steamserver.net","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn"],"outbound":"DIRECT"},{"rule_set":["geosite-google","telegramip","proxy","games","ai"],"outbound":"PROXY"},{"rule_set":["private","cn","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"rule_set":"cnip","outbound":"DIRECT"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube","org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite-youtube","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","download_detour":"PROXY","update_interval":"48h"}],"final":"PROXY","auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://cdn.jsdelivr.net/gh/MetaCubeX/metacubexd@gh-pages/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_fakeip":true,"store_dns":true},"urltest_unified_delay":true}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.17.ref1nd.json-586fb594.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.17.ref1nd.json-586fb594.json new file mode 100644 index 00000000..12b07177 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.17.ref1nd.json-586fb594.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"hosts_fix","type":"hosts","predefined":{"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"]}},{"tag":"alidns","type":"quic","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"DIRECT"},{"tag":"ggdns","type":"https","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"PROXY"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","app-measurement.com","hm.baidu.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com","tracking.miui.com","market.xiaomi.com","lancache.steamcontent.com"],"server":"alidns"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip","rewrite_ttl":300,"client_subnet":"119.134.100.0/24"},{"domain_suffix":["play.google.com","ggpht.com","googleusercontent.com","android.com"],"server":"fakeip"},{"clash_mode":["direct"],"server":"alidns"},{"clash_mode":["global"],"server":"fakeip"}],"final":"ggdns","strategy":"prefer_ipv4","reverse_mapping":true,"cache_capacity":16000},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://www.gstatic.com/generate_204","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}}],"route":{"default_domain_resolver":"alidns","rules":[{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"domain_suffix":["miwifi.com"],"outbound":"DIRECT"},{"clash_mode":["direct"],"outbound":"DIRECT"},{"clash_mode":["global"],"outbound":"GLOBAL"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"domain_suffix":["steamserver.net","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn"],"outbound":"DIRECT"},{"rule_set":["geosite-google","telegramip","proxy","games","ai"],"outbound":"PROXY"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube","org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","update_interval":"48h"},{"tag":"geosite-youtube","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","update_interval":"48h"}],"final":"PROXY","auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://cdn.jsdelivr.net/gh/MetaCubeX/metacubexd@gh-pages/metacubexd.zip","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_fakeip":true,"store_dns":true},"urltest_unified_delay":true}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.27.ref1nd.json-c126df18.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.27.ref1nd.json-c126df18.json new file mode 100644 index 00000000..097f14eb --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.27.ref1nd.json-c126df18.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"hosts_fix","predefined":{"dns.alidns.com":["223.5.5.5","223.6.6.6"],"dns.google":["8.8.8.8","8.8.4.4"],"mtalk.google.com":["2404:6800:4008:c07::bc","2404:6800:4008:c1b::bc","2404:6800:4008:c15::bc","2404:6800:4008:c05::bc","2404:6800:4008:c19::bc","2404:6800:4008:c01::bc","2607:f8b0:4023:1c05::bc","2607:f8b0:400e:c09::bc","142.250.107.188","142.251.170.188","108.177.125.188","142.251.10.188","64.233.186.188","74.125.206.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","2a00:1450:400b:c02::bc","74.125.200.188"],"alt2-mtalk.google.com":"192.178.220.188","alt3-mtalk.google.com":["2607:f8b0:4023:2009::bc","2607:f8b0:4023:100f::bc","74.125.131.188"],"alt4-mtalk.google.com":"209.85.144.188","alt5-mtalk.google.com":["2607:f8b0:4003:c0a::bc","2a00:1450:4025:c01::bc","74.125.126.188"],"alt6-mtalk.google.com":"142.250.115.188","alt7-mtalk.google.com":["2607:f8b0:4024:c0d::bc","2404:6800:4003:c06::bc","192.178.131.188"],"alt8-mtalk.google.com":"172.253.132.188","dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33","raw.githubusercontent.com":["185.199.108.133","185.199.109.133","185.199.110.133","185.199.111.133"],"cdn.jsdelivr.net":["104.16.89.20","104.16.90.20"]}},{"type":"quic","tag":"alidns-quic","detour":"direct","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"proxy-dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"fakeip","tag":"fakeip","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"}],"rules":[{"domain":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com","dl.google.com","dl.l.google.com"],"server":"hosts_fix"},{"rule_set":"Filter","server":"alidns-quic"},{"domain_suffix":[".cn",".xn--fiqs8s",".xn--55qx5d",".xn--io0a7i"],"server":"alidns-quic"},{"domain_suffix":["douyinvod.com","ibytedtos.com","pstatp.com","byteimg.com","bytecdn.com","snssdk.com","bytedance.com","toutiao.com","ixigua.com","volcengine.com","kuaishou.com","yximgs.com","bilivideo.com","hdslb.com","alicdn.com","aliyuncs.com","gtimg.com","360buyimg.com","pinduoduo.com"],"server":"alidns-quic"},{"rule_set":"cn","server":"alidns-quic"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":["geosite_adguard","geosite-category-ads-all","DNSreject"],"action":"reject"},{"domain_suffix":".local","action":"reject"},{"domain_suffix":"372164885.xyz","server":"alidns-quic"},{"server":"fakeip"}],"final":"proxy-dns","reverse_mapping":true,"strategy":"prefer_ipv4","timeout":"3s","cache_capacity":256000,"optimistic":{"enabled":true,"timeout":"1h0m0s"}},"ntp":{"enabled":true,"interval":"30m0s","server":"ntp.aliyun.com","server_port":123,"detour":"direct"},"http_clients":[{"tag":"default","version":2,"detour":"direct","stream_receive_window":0,"connection_receive_window":0},{"tag":"proxy","version":2,"detour":"๐Ÿ“ฆ sing-box","domain_resolver":"alidns-quic","stream_receive_window":0,"connection_receive_window":0},{"tag":"provider-dl","version":2,"detour":"direct","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"tun","tag":"tun-in","mtu":1500,"address":["10.8.0.1/24","fdfe:dcba:9876::1/126"],"dns_mode":"hijack","dns_address":["10.8.0.2","fdfe:dcba:9876::2"],"auto_route":true,"strict_route":true,"route_address_set":["cnip","private"],"stack":"system"},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"selector","tag":"๐Ÿšฆ FINAL","outbounds":["๐Ÿ“ฆ sing-box","direct","โŒ REJECT-DROP"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"block","tag":"โŒ REJECT-DROP"},{"type":"selector","tag":"๐Ÿ“ฆ sing-box","outbounds":["๐ŸŸข ่‡ชๅŠจ-ๆต‹้€Ÿ","๐Ÿ”ต ่‡ชๅŠจ-็จณๅฎš"],"providers":null,"use_all_providers":true,"interrupt_exist_connections":true},{"type":"urltest","tag":"๐ŸŸข ่‡ชๅŠจ-ๆต‹้€Ÿ","outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"providers":null,"use_all_providers":true,"url":"http://www.gstatic.com/generate_204","interval":"10m0s","tolerance":100,"idle_timeout":"30m0s"},{"type":"urltest","tag":"๐Ÿ”ต ่‡ชๅŠจ-็จณๅฎš","outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"providers":null,"use_all_providers":true,"url":"http://www.gstatic.com/generate_204","interval":"15m0s","tolerance":30,"idle_timeout":"1h0m0s"},{"type":"selector","tag":"๐Ÿงญ Google Services","outbounds":["direct"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“ฌ Google FCM","outbounds":["๐Ÿ“ฆ sing-box","direct","๐Ÿงญ Google Services"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸŽ Apple","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"default":"direct","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“บ StreamingME","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸชŸ Microsoft","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“  Telegram","outbounds":["๐Ÿ“ฆ sing-box"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"default":"direct","interrupt_exist_connections":true},{"type":"selector","tag":"GLOBAL","outbounds":["๐Ÿ“ฆ sing-box","direct"],"providers":null,"default":"๐Ÿ“ฆ sing-box"},{"type":"direct","tag":"direct","domain_resolver":"alidns-quic"},{"type":"socks","tag":"mock-hk-01","server":"203.0.113.11","server_port":1080},{"type":"socks","tag":"mock-jp-01","server":"203.0.113.12","server_port":1080},{"type":"socks","tag":"mock-sg-01","server":"203.0.113.13","server_port":1080}],"providers":[{"type":"remote","tag":"my_nodes","url":"https://ssb.372164885.xyz/LNB92RfZaScOVZO93kX9/download/%E7%9A%AE%E5%8D%A1%E7%9A%AE%E5%8D%A1?target=sing-box","path":"./providers/my_nodes.json","http_client":"provider-dl","update_interval":"24h0m0s","health_check":{"enabled":true,"url":"http://cp.cloudflare.com/generate_204","interval":"1h0m0s","timeout":"3s"}}],"route":{"rules":[{"domain_suffix":"cp.cloudflare.com","outbound":"direct"},{"action":"sniff"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"port":[853,5353],"action":"reject"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"type":"logical","mode":"or","rules":[{"rule_set":["geosite-google","geosite-youtube","instagram","telegram","Google","Proxy","gfw","ai","games","GlobalMedia"]},{"domain_suffix":["play.google.com","play.googleapis.com","play-fe.googleapis.com","play-lh.googleusercontent.com","android.clients.google.com","android.googleapis.com","dl.google.com","dl.l.google.com","gvt1.com","gvt2.com","gvt3.com","ggpht.com","googleusercontent.com","twitter.com","twimg.com","facebook.com","fbcdn.net","netflix.com","spotify.com","github.com","steampowered.com","discord.com","reddit.com","tiktok.com","amazon.com","paypal.com"]}]}],"outbound":"๐Ÿ“ฆ sing-box"},{"type":"logical","mode":"and","rules":[{"domain_suffix":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com"]},{"port":[443,5228]}],"outbound":"๐Ÿ“ฆ sing-box"},{"protocol":["ntp","icmp"],"outbound":"direct"},{"domain_suffix":["google.cn","googleapis.cn"],"outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["browserleaks.com","ipleak.net","dnsleaktest.com","whoer.net","whatleaks.com","ip.sb","ipinfo.io","ifconfig.me","ip-api.com"],"outbound":"๐Ÿ“ฆ sing-box"},{"rule_set":["fcm","Android"],"outbound":"๐Ÿ“ฆ sing-box"},{"rule_set":["geosite-google","geosite-youtube","telegram","instagram","Google","Proxy","gfw","ai","games","GlobalMedia","telegram_ip"],"outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["play.google.com","play.googleapis.com","android.clients.google.com","android.googleapis.com","dl.google.com","dl.l.google.com","gvt1.com","gvt2.com","gvt3.com","services.googleapis.com","googleapis.com","gstatic.com","ggpht.com","googleusercontent.com","google.com","google.com.hk","youtube.com","ytimg.com","googlevideo.com","app-measurement.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com"],"outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["netflix.com","spotify.com","github.com","steampowered.com","discord.com","reddit.com","tiktok.com","twitter.com","twimg.com","facebook.com","fbcdn.net","amazon.com","microsoft.com","paypal.com"],"outbound":"๐Ÿ“ฆ sing-box"},{"package_name_regex":"^(com\\.google\\.android\\.(youtube|apps\\.(maps|docs|drive))|app\\.revanced\\.android\\.youtube|org\\.telegram\\.messenger(\\..*)?)$","outbound":"๐Ÿ“ฆ sing-box"},{"action":"sniff"},{"domain_suffix":["douyinvod.com","ibytedtos.com","pstatp.com","byteimg.com","bytecdn.com","snssdk.com","bytedance.com","toutiao.com","ixigua.com","volcengine.com","kuaishou.com","yximgs.com","bilivideo.com","hdslb.com","alicdn.com","aliyuncs.com","gtimg.com","360buyimg.com","pinduoduo.com"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"domain_suffix":[".cn",".xn--fiqs8s",".xn--55qx5d",".xn--io0a7i"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","games-cn","networktest"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"domain_suffix":"sponsor.ajay.app","outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"package_name":["com.tencent.mm","com.eg.android.AlipayGphone","com.netease.cloudmusic","com.wwwscn.yuexingbao"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"rule_set":"Apple","outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"clash_mode":"Direct","outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"clash_mode":"Global","outbound":"GLOBAL"},{"ip_is_private":true,"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"ip_cidr":"198.18.0.0/15","outbound":"๐Ÿ“ฆ sing-box"},{"ip_cidr":"fc00::/18","outbound":"๐Ÿ“ฆ sing-box"},{"action":"route-options","udp_disable_domain_unmapping":true,"udp_connect":true},{"rule_set":["Ads","httpDNS","DNSreject","anti_fraud"],"action":"reject","method":"drop"},{"domain":["beacon.qq.com","abyss.cyapi.cn","ad.cyapi.cn","gather.colorfulclouds.net"],"action":"reject","method":"drop"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"protocol":["stun","quic","dtls"],"action":"reject"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn","httpdns"]}],"action":"reject"},{"action":"resolve"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite_adguard","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"ai","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"anti_fraud","url":"https://cdn.jsdelivr.net/gh/hwsaya/nothing@main/rules/FuckFZ.json","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"networktest","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram_ip","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geoip/telegram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Proxy","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-geolocation-!cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"gfw","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/gfw.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Filter","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/fakeip-filter.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"DNSreject","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/AdGuardSDNSFilter/AdGuardSDNSFilter.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"httpDNS","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/BlockHttpDNS/BlockHttpDNS.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Ads","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ads.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Apple","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"fcm","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/GoogleFCM/GoogleFCM.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Android","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/Android/Android.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"instagram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-instagram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Google","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/Google/Google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"GlobalMedia","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/category-entertainment.srs","http_client":"default","update_interval":"48h0m0s"}],"final":"๐Ÿšฆ FINAL","auto_detect_interface":true,"default_domain_resolver":"alidns-quic"},"experimental":{"cache_file":{"enabled":true,"path":"cache.db","cache_id":"reF1nd","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","default_mode":"rule"},"debug":{"gc_percent":100,"memory_limit":"400MB"}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.31.ref1nd.json-eea67696.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.31.ref1nd.json-eea67696.json new file mode 100644 index 00000000..432a66b3 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.31.ref1nd.json-eea67696.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"hosts_fix","predefined":{"dns.alidns.com":["223.5.5.5","223.6.6.6"],"dns.adguard-dns.com":["94.140.14.14","94.140.15.15"],"doh.pub":["1.12.12.21","120.53.53.53"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"dns.quad9.net":["9.9.9.9","149.112.112.112"],"dns.google":["8.8.8.8","8.8.4.4"],"mtalk.google.com":["2404:6800:4008:c07::bc","2404:6800:4008:c1b::bc","2404:6800:4008:c15::bc","2404:6800:4008:c05::bc","2404:6800:4008:c19::bc","2404:6800:4008:c01::bc","2607:f8b0:4023:1c05::bc","2607:f8b0:400e:c09::bc","142.250.107.188","142.251.170.188","108.177.125.188","142.251.10.188","64.233.186.188","74.125.206.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","2a00:1450:400b:c02::bc","74.125.200.188"],"alt2-mtalk.google.com":"192.178.220.188","alt3-mtalk.google.com":["2607:f8b0:4023:2009::bc","2607:f8b0:4023:100f::bc","74.125.131.188"],"alt4-mtalk.google.com":"209.85.144.188","alt5-mtalk.google.com":["2607:f8b0:4003:c0a::bc","2a00:1450:4025:c01::bc","74.125.126.188"],"alt6-mtalk.google.com":"142.250.115.188","alt7-mtalk.google.com":["2607:f8b0:4024:c0d::bc","2404:6800:4003:c06::bc","192.178.131.188"],"alt8-mtalk.google.com":"172.253.132.188","dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33","raw.githubusercontent.com":["185.199.108.133","185.199.109.133","185.199.110.133","185.199.111.133"],"ssb.372164885.xyz":["104.21.32.1","104.21.48.1"],"cdn.jsdelivr.net":["104.16.89.20","104.16.90.20"]}},{"type":"quic","tag":"alidns-quic","detour":"direct","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"proxy-dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"dnspub-doh","detour":"direct","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"cf-dot","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"hosts_fix","server":"1.1.1.1","path":"/dns-query"},{"type":"https","tag":"adguard-dns","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"hosts_fix","server":"1.1.1.1","path":"/dns-query"},{"type":"https","tag":"quad9-doh","detour":"๐Ÿ“ฆ sing-box","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"fakeip","tag":"fakeip","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"}],"rules":[{"rule_set":["geosite_adguard","geosite-category-ads-all"],"server":"adguard-dns"},{"ip_version":6,"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":["httpDNS","DNSreject","Ads"],"action":"predefined","rcode":"NOERROR"},{"domain_suffix":["beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com"],"action":"reject"},{"rule_set":"Filter","server":"alidns-quic"},{"domain":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com","dl.google.com","dl.l.google.com"],"server":"hosts_fix"},{"domain_suffix":[".cn",".xn--fiqs8s",".xn--55qx5d",".xn--io0a7i"],"server":"alidns-quic"},{"domain_suffix":["douyinvod.com","ibytedtos.com","pstatp.com","byteimg.com","bytecdn.com","snssdk.com","bytedance.com","toutiao.com","ixigua.com","volcengine.com","kuaishou.com","yximgs.com","bilivideo.com","hdslb.com","alicdn.com","aliyuncs.com","gtimg.com","360buyimg.com","pinduoduo.com"],"server":"alidns-quic"},{"rule_set":"cn","server":"dnspub-doh"},{"domain_suffix":"372164885.xyz","server":"alidns-quic"},{"domain_suffix":[".local",".lan","local","lan","home","internal","corp"],"action":"reject"},{"rule_set":["Google","fcm","Android"],"server":"cf-dot"},{"query_type":["A","AAAA"],"invert":true,"action":"reject"},{"server":"fakeip"}],"final":"quad9-doh","reverse_mapping":true,"strategy":"prefer_ipv4","timeout":"3s","cache_capacity":256000,"optimistic":{"enabled":true,"timeout":"1h0m0s"}},"ntp":{"enabled":true,"interval":"30m0s","server":"ntp.aliyun.com","server_port":123,"detour":"direct"},"http_clients":[{"tag":"default","version":2,"detour":"direct","stream_receive_window":0,"connection_receive_window":0},{"tag":"proxy","version":2,"detour":"๐Ÿ“ฆ sing-box","domain_resolver":"alidns-quic","stream_receive_window":0,"connection_receive_window":0},{"tag":"provider-dl","version":2,"detour":"direct","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"tun","tag":"tun-in","mtu":1500,"address":["10.8.0.1/24","fdfe:dcba:9876::1/126"],"dns_mode":"hijack","dns_address":["10.8.0.2","fdfe:dcba:9876::2"],"auto_route":true,"strict_route":true,"route_address_set":["cnip","private"],"stack":"system"},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"selector","tag":"๐Ÿšฆ FINAL","outbounds":["๐Ÿ“ฆ sing-box","direct","โŒ REJECT-DROP"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"block","tag":"โŒ REJECT-DROP"},{"type":"selector","tag":"๐Ÿ“ฆ sing-box","outbounds":["๐ŸŸข ่‡ชๅŠจ-ๆต‹้€Ÿ","๐Ÿ”ต ่‡ชๅŠจ-็จณๅฎš"],"providers":null,"use_all_providers":true,"interrupt_exist_connections":true},{"type":"urltest","tag":"๐ŸŸข ่‡ชๅŠจ-ๆต‹้€Ÿ","outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"providers":null,"use_all_providers":true,"url":"http://www.gstatic.com/generate_204","interval":"10m0s","tolerance":100,"idle_timeout":"30m0s"},{"type":"urltest","tag":"๐Ÿ”ต ่‡ชๅŠจ-็จณๅฎš","outbounds":["mock-hk-01","mock-jp-01","mock-sg-01"],"providers":null,"use_all_providers":true,"url":"http://www.gstatic.com/generate_204","interval":"15m0s","tolerance":30,"idle_timeout":"1h0m0s"},{"type":"selector","tag":"๐Ÿงญ Google Services","outbounds":["direct"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“ฌ Google FCM","outbounds":["๐Ÿ“ฆ sing-box","direct","๐Ÿงญ Google Services"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸŽ Apple","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"default":"direct","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“บ StreamingME","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐ŸชŸ Microsoft","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ“  Telegram","outbounds":["๐Ÿ“ฆ sing-box"],"providers":null,"default":"๐Ÿ“ฆ sing-box","interrupt_exist_connections":true},{"type":"selector","tag":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡","outbounds":["direct","๐Ÿ“ฆ sing-box"],"providers":null,"default":"direct","interrupt_exist_connections":true},{"type":"selector","tag":"GLOBAL","outbounds":["๐Ÿ“ฆ sing-box","direct"],"providers":null,"default":"๐Ÿ“ฆ sing-box"},{"type":"direct","tag":"direct","domain_resolver":"alidns-quic"},{"type":"socks","tag":"mock-hk-01","server":"203.0.113.11","server_port":1080},{"type":"socks","tag":"mock-jp-01","server":"203.0.113.12","server_port":1080},{"type":"socks","tag":"mock-sg-01","server":"203.0.113.13","server_port":1080}],"providers":[{"type":"remote","tag":"my_nodes","url":"//่ฎข้˜…้“พๆŽฅ","path":"./providers/my_nodes.json","http_client":"provider-dl","update_interval":"24h0m0s","health_check":{"enabled":true,"url":"http://cp.cloudflare.com/generate_204","interval":"1h0m0s","timeout":"3s"}}],"route":{"rules":[{"domain_suffix":"cp.cloudflare.com","outbound":"direct"},{"action":"sniff"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"port":[853,5353],"action":"reject"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"type":"logical","mode":"or","rules":[{"rule_set":["geosite-google","geosite-youtube","instagram","telegram","Google","Proxy","gfw","ai","games","GlobalMedia"]},{"domain_suffix":["play.google.com","play.googleapis.com","play-fe.googleapis.com","play-lh.googleusercontent.com","android.clients.google.com","android.googleapis.com","dl.google.com","dl.l.google.com","gvt1.com","gvt2.com","gvt3.com","ggpht.com","googleusercontent.com","twitter.com","twimg.com","facebook.com","fbcdn.net","netflix.com","spotify.com","github.com","steampowered.com","discord.com","reddit.com","tiktok.com","amazon.com","paypal.com"]}]}],"outbound":"๐Ÿ“ฆ sing-box"},{"type":"logical","mode":"and","rules":[{"domain_suffix":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com"]},{"port":[443,5228]}],"outbound":"๐Ÿ“ฆ sing-box"},{"protocol":["ntp","icmp"],"outbound":"direct"},{"domain_suffix":["google.cn","googleapis.cn"],"outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["browserleaks.com","ipleak.net","dnsleaktest.com","whoer.net","whatleaks.com","ip.sb","ipinfo.io","ifconfig.me","ip-api.com"],"outbound":"๐Ÿ“ฆ sing-box"},{"rule_set":["fcm","Android"],"outbound":"๐Ÿ“ฆ sing-box"},{"rule_set":["geosite-google","geosite-youtube","telegram","instagram","Google","Proxy","gfw","ai","games","GlobalMedia","telegram_ip"],"outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["play.google.com","play.googleapis.com","android.clients.google.com","android.googleapis.com","dl.google.com","dl.l.google.com","gvt1.com","gvt2.com","gvt3.com","services.googleapis.com","googleapis.com","gstatic.com","ggpht.com","googleusercontent.com","google.com","google.com.hk","youtube.com","ytimg.com","googlevideo.com","app-measurement.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com"],"outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["netflix.com","spotify.com","github.com","steampowered.com","discord.com","reddit.com","tiktok.com","twitter.com","twimg.com","facebook.com","fbcdn.net","amazon.com","microsoft.com","paypal.com"],"outbound":"๐Ÿ“ฆ sing-box"},{"package_name_regex":"^(com\\.google\\.android\\.(youtube|apps\\.(maps|docs|drive))|app\\.revanced\\.android\\.youtube|org\\.telegram\\.messenger(\\..*)?)$","outbound":"๐Ÿ“ฆ sing-box"},{"domain_suffix":["douyinvod.com","ibytedtos.com","pstatp.com","byteimg.com","bytecdn.com","snssdk.com","bytedance.com","toutiao.com","ixigua.com","volcengine.com","kuaishou.com","yximgs.com","bilivideo.com","hdslb.com","alicdn.com","aliyuncs.com","gtimg.com","360buyimg.com","pinduoduo.com"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"domain_suffix":[".cn",".xn--fiqs8s",".xn--55qx5d",".xn--io0a7i"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","games-cn","networktest"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"domain_suffix":"sponsor.ajay.app","outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"package_name":["com.tencent.mm","com.eg.android.AlipayGphone","com.netease.cloudmusic","com.wwwscn.yuexingbao"],"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"rule_set":"Apple","outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"clash_mode":"Direct","outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"clash_mode":"Global","outbound":"GLOBAL"},{"ip_is_private":true,"outbound":"๐Ÿ‡จ๐Ÿ‡ณ ๅ›ฝๅ†…ๆต้‡"},{"ip_cidr":"198.18.0.0/15","outbound":"๐Ÿ“ฆ sing-box"},{"ip_cidr":"fc00::/18","outbound":"๐Ÿ“ฆ sing-box"},{"action":"route-options","udp_disable_domain_unmapping":true,"udp_connect":true},{"rule_set":["Ads","httpDNS","DNSreject","anti_fraud"],"action":"reject","method":"drop"},{"domain":["beacon.qq.com","abyss.cyapi.cn","ad.cyapi.cn","gather.colorfulclouds.net"],"action":"reject","method":"drop"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"protocol":["stun","quic","dtls"],"action":"reject"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn","httpdns"]}],"action":"reject"},{"action":"resolve"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite_adguard","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"ai","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"anti_fraud","url":"https://cdn.jsdelivr.net/gh/hwsaya/nothing@main/rules/FuckFZ.json","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"networktest","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram_ip","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geoip/telegram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Proxy","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-geolocation-!cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"gfw","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/gfw.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Filter","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/fakeip-filter.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"DNSreject","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/AdGuardSDNSFilter/AdGuardSDNSFilter.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"httpDNS","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/BlockHttpDNS/BlockHttpDNS.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Ads","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ads.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Apple","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"fcm","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/GoogleFCM/GoogleFCM.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Android","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/Android/Android.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"instagram","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-instagram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Google","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/Google/Google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"GlobalMedia","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/category-entertainment.srs","http_client":"default","update_interval":"48h0m0s"}],"final":"๐Ÿšฆ FINAL","auto_detect_interface":true,"default_domain_resolver":"alidns-quic"},"services":[{"type":"api","tag":"api","listen":"127.0.0.1","listen_port":9091,"access_control_allow_private_network":true}],"experimental":{"cache_file":{"enabled":true,"path":"cache.db","cache_id":"reF1nd","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","default_mode":"rule","access_control_allow_private_network":true},"debug":{"gc_percent":100,"memory_limit":"400MB"}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.12-.json-2eeb05f0.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.12-.json-2eeb05f0.json new file mode 100644 index 00000000..c60b61cf --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.12-.json-2eeb05f0.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"hosts_fix","type":"hosts","predefined":{"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"]}},{"tag":"alidns","type":"quic","server":"1.1.1.1","domain_resolver":"hosts_fix"},{"tag":"ggdns","type":"https","server":"1.1.1.1","domain_resolver":"hosts_fix"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":["app-measurement.com","hm.baidu.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com","tracking.miui.com"],"server":"alidns"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net"],"server":"local"},{"query_type":["SVCB","HTTPS"],"action":"reject"},{"query_type":["PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"ggdns","client_subnet":"119.134.100.0/24"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com"],"server":"alidns"},{"domain_suffix":["play.google.com","ggpht.com","googleusercontent.com","android.com"],"server":"fakeip"},{"clash_mode":"direct","server":"alidns"},{"clash_mode":"global","server":"fakeip"},{"action":"evaluate","server":"alidns"},{"type":"logical","mode":"or","rules":[{"match_response":true,"ip_is_private":true}],"action":"respond"},{"match_response":true,"ip_accept_any":true,"action":"respond"}],"final":"alidns","strategy":"ipv4_only","reverse_mapping":true,"cache_capacity":16000,"optimistic":true},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://www.gstatic.com/generate_204","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"cvb.372164885.xyz","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}},{"tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"type":"vless","uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"]}}],"route":{"default_domain_resolver":"alidns","rules":[{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject"},{"domain_suffix":["miwifi.com"],"outbound":"DIRECT"},{"clash_mode":"direct","outbound":"DIRECT"},{"clash_mode":"global","outbound":"GLOBAL"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"rule_set":"geosite-google","outbound":"PROXY"},{"domain_suffix":["steamserver.net","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn"],"outbound":"DIRECT"},{"rule_set":"proxy","outbound":"PROXY"},{"rule_set":"games","outbound":"PROXY"},{"rule_set":"ai","outbound":"PROXY"},{"rule_set":["private","cn","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"rule_set":"telegramip","outbound":"PROXY"},{"rule_set":"cnip","outbound":"DIRECT"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube"],"outbound":"PROXY"},{"package_name":["org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"geosite-youtube","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","download_detour":"PROXY","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","download_detour":"PROXY","update_interval":"48h"}],"final":"PROXY","auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://cdn.jsdelivr.net/gh/MetaCubeX/metacubexd@gh-pages/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_dns":true,"store_fakeip":true}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.14-.json-8c2a908f.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.14-.json-8c2a908f.json new file mode 100644 index 00000000..7b6d90e4 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.14-.json-8c2a908f.json @@ -0,0 +1 @@ +{"log":{"level":"info","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m","detour":"PROXY"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"hosts_fix","type":"hosts","predefined":{"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"]}},{"tag":"alidns","type":"quic","server":"1.1.1.1","domain_resolver":"hosts_fix"},{"tag":"ggdns","type":"https","server":"1.1.1.1","domain_resolver":"hosts_fix"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"},{"tag":"doh-ech","type":"https","server":"1.1.1.1","detour":"PROXY"}],"rules":[{"domain_suffix":["cvb.372164885.xyz"],"server":"doh-ech"},{"domain_suffix":["app-measurement.com","hm.baidu.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com","tracking.miui.com"],"server":"alidns"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net"],"server":"local"},{"query_type":["SVCB","HTTPS"],"action":"reject"},{"query_type":["PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"ggdns","client_subnet":"119.134.100.0/24"},{"domain_suffix":["market.xiaomi.com","lancache.steamcontent.com"],"server":"alidns"},{"domain_suffix":["play.google.com","ggpht.com","googleusercontent.com","android.com"],"server":"fakeip"},{"action":"evaluate","server":"alidns"},{"match_response":true,"rule_set":"cnip","action":"route","server":"local"},{"match_response":true,"action":"respond"}],"final":"alidns","strategy":"ipv4_only","reverse_mapping":true,"cache_capacity":16000,"optimistic":true},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://www.gstatic.com/generate_204","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"type":"vless","tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"],"ech":{"enabled":false}}},{"type":"vless","tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"],"ech":{"enabled":false}}}],"http_clients":[{"tag":"default","detour":"PROXY"}],"route":{"default_domain_resolver":"alidns","rules":[{"wifi_ssid":["MyHomeWiFi"],"outbound":"PROXY"},{"wifi_bssid":["00:11:22:33:44:55"],"outbound":"DIRECT"},{"domain_suffix":["steamcontent.com"],"action":"bypass"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject"},{"domain_suffix":["miwifi.com"],"outbound":"DIRECT"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"rule_set":"geosite-google","outbound":"PROXY"},{"domain_suffix":["steamserver.net","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn"],"outbound":"DIRECT"},{"rule_set":"proxy","outbound":"PROXY"},{"rule_set":"games","outbound":"PROXY"},{"rule_set":"ai","outbound":"PROXY"},{"rule_set":["private","cn","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"rule_set":"telegramip","outbound":"PROXY"},{"rule_set":"cnip","outbound":"DIRECT"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube"],"outbound":"PROXY"},{"package_name":["org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite-youtube","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","http_client":"default","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"default","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h"}],"final":"PROXY","auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://cdn.jsdelivr.net/gh/MetaCubeX/metacubexd@gh-pages/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_dns":true,"store_fakeip":true}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.16-17-.json-1150bc0b.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.16-17-.json-1150bc0b.json new file mode 100644 index 00000000..4cf794c4 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.16-17-.json-1150bc0b.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m","detour":"DIRECT"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"hosts_fix","type":"hosts","predefined":{"dns.huaweicloud.com":["180.163.150.33","180.163.151.33"],"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"mtalk.google.com":["142.250.107.188","142.251.170.188","108.177.125.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","74.125.200.188"],"dl.google.com":["180.163.151.161"],"dl.l.google.com":["180.163.150.33"]}},{"tag":"alidns-dot","type":"tls","server":"1.1.1.1","server_port":853,"domain_resolver":"hosts_fix","detour":"DIRECT"},{"tag":"alidns-quic","type":"quic","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"DIRECT"},{"tag":"ggdns","type":"https","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"PROXY"},{"tag":"doh-ech","type":"https","server":"1.1.1.1","path":"/dns-query","detour":"PROXY"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","hm.baidu.com","tracking.miui.com","douyinvod.com","douyincdn.com","ixigua.com","pstatp.com","bytecdn.com","volccdn.com","dl.delivery.mp.microsoft.com","update.microsoft.com","windowsupdate.com","speedtest.net","fast.com","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn","dashscope.aliyuncs.com","api.moonshot.cn","api.baichuan-ai.com","api.minimax.chat","api.sensenova.cn","api.iflytek.com","api.bilibili.com","www.bilibili.com","xinghuo.xfyun.cn","chatglm.cn","bigmodel.cn","volces.com","lingyiwanwu.com","stepfun.com","chat.deepseek.com","www.deepseek.com","zhipuai.cn","market.xiaomi.com"],"server":"alidns-quic"},{"domain_suffix":["lancache.steamcontent.com"],"server":"local"},{"domain_suffix":["steamcontent.com","steamserver.net","epicgames.com","gog.com","battle.net","blizzard.com","origin.com","ea.com","ubisoft.com","rockstargames.com","play.google.com","ggpht.com","googleusercontent.com","android.com","app-measurement.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com"],"server":"fakeip"},{"domain_suffix":["่Š‚็‚นๅŸŸๅ"],"server":"doh-ech"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS"],"action":"reject"},{"query_type":["PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip","rewrite_ttl":300,"client_subnet":"119.134.100.0/24"},{"domain_suffix":[".cn",".com.cn"],"server":"alidns-dot"},{"action":"evaluate","server":"alidns-quic"},{"match_response":true,"rule_set":"cnip","action":"route","server":"local"},{"match_response":true,"action":"respond"}],"final":"alidns-dot","strategy":"prefer_ipv4","reverse_mapping":true,"cache_capacity":65536,"optimistic":true},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns-quic"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://cp.cloudflare.com/","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"type":"vless","tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns-quic","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"],"ech":{"enabled":false}}},{"type":"vless","tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns-quic","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"],"ech":{"enabled":false}}}],"http_clients":[{"tag":"default","detour":"PROXY"}],"route":{"default_domain_resolver":"alidns-quic","rules":[{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject"},{"wifi_ssid":["MyHomeWiFi"],"outbound":"PROXY"},{"wifi_bssid":["00:11:22:33:44:55"],"outbound":"DIRECT"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn","httpdns"]},{"protocol":"stun"}],"action":"reject"},{"domain_keyword":["ntp","time"],"network":"udp","port":123,"outbound":"DIRECT"},{"type":"logical","mode":"and","rules":[{"domain_suffix":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com"]},{"port":[443,5228]}],"outbound":"PROXY"},{"rule_set":"anti_fraud","action":"reject"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"rule_set":"geosite-google","outbound":"PROXY"},{"rule_set":"proxy","outbound":"PROXY"},{"rule_set":"games","outbound":"PROXY"},{"rule_set":"ai","outbound":"PROXY"},{"rule_set":["private","cn","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"rule_set":"telegramip","outbound":"PROXY"},{"rule_set":"cnip","outbound":"DIRECT"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube"],"outbound":"PROXY"},{"package_name":["org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite-youtube","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","http_client":"default","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h"},{"tag":"anti_fraud","type":"remote","format":"source","url":"https://raw.githubusercontent.com/hwsaya/nothing/refs/heads/main/rules/FuckFZ.json","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"default","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h"}],"final":"PROXY","auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://github.com/MetaCubeX/metacubexd/releases/latest/download/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_dns":true,"store_fakeip":true},"debug":{"gc_percent":50,"memory_limit":"200MB"}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-36630bef.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-36630bef.json new file mode 100644 index 00000000..fa839789 --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-36630bef.json @@ -0,0 +1 @@ +{"log":{"level":"warn","timestamp":true},"http_clients":[{"tag":"default","version":2,"detour":"โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ"}],"experimental":{"cache_file":{"enabled":true,"store_fakeip":true},"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","default_mode":"rule"}},"ntp":{"enabled":true,"server":"time.apple.com","server_port":123,"interval":"60m"},"dns":{"servers":[{"type":"tls","tag":"google","detour":"โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","server":"1.1.1.1"},{"type":"quic","tag":"local","server":"1.1.1.1"},{"type":"fakeip","tag":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"clash_mode":"Direct","server":"local"},{"clash_mode":"Global","server":"google"},{"query_type":["AAAA"],"server":"local"},{"rule_set":"geosite-cn","server":"local"},{"query_type":["A"],"server":"fakeip"}],"strategy":"prefer_ipv4"},"inbounds":[{"type":"tun","tag":"tun-in","address":"172.19.0.1/30","auto_route":true,"strict_route":true,"stack":"system","platform":{"http_proxy":{"enabled":true,"server":"127.0.0.1","server_port":7890}}},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"vless","tag":"๐Ÿ‡บ๐Ÿ‡ธ pkpk01","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/pkpk-vl","headers":{"Host":"่Š‚็‚นๅŸŸๅ"},"max_early_data":2560,"early_data_header_name":"Sec-WebSocket-Protocol"}},{"type":"vless","tag":"๐Ÿ‡บ๐Ÿ‡ธ pkpk02","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/pkpk-vl","headers":{"Host":"่Š‚็‚นๅŸŸๅ"},"max_early_data":2560,"early_data_header_name":"Sec-WebSocket-Protocol"}},{"type":"urltest","tag":"โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","outbounds":["๐Ÿ‡บ๐Ÿ‡ธ pkpk01","๐Ÿ‡บ๐Ÿ‡ธ pkpk02"],"url":"http://www.gstatic.com/generate_204","interval":"5m0s","tolerance":50},{"type":"selector","tag":"๐Ÿค– AI","outbounds":["โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","โœˆ๏ธ Proxy"]},{"type":"selector","tag":"โ–ถ๏ธ YouTube","outbounds":["โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","โœˆ๏ธ Proxy"]},{"type":"selector","tag":"๐Ÿ“ฑ Telegram","outbounds":["โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","โœˆ๏ธ Proxy"]},{"type":"selector","tag":"โœˆ๏ธ Proxy","outbounds":["โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","๐ŸŽฏ direct"]},{"type":"direct","tag":"๐ŸŽฏ direct"},{"type":"block","tag":"block"}],"route":{"rules":[{"action":"sniff"},{"clash_mode":"Direct","outbound":"๐ŸŽฏ direct"},{"clash_mode":"Global","outbound":"โœˆ๏ธ Proxy"},{"protocol":"dns","action":"hijack-dns"},{"rule_set":"geosite-category-ads-all","action":"reject"},{"rule_set":["geosite-cn","geoip-cn"],"outbound":"๐ŸŽฏ direct"},{"ip_is_private":true,"outbound":"๐ŸŽฏ direct"},{"type":"logical","mode":"or","rules":[{"rule_set":["geosite-openai","geosite-anthropic","geosite-google-gemini"]},{"domain_suffix":["chatgpt.com","claude.ai","gateway.ai.cloudflare.com","grok.com","groq.com","meta.ai","openart.ai","openrouter.ai","perplexity.ai","x.ai"]}],"outbound":"๐Ÿค– AI"},{"rule_set":["geosite-youtube","geosite-netflix"],"outbound":"โ–ถ๏ธ YouTube"},{"rule_set":"geosite-telegram","outbound":"๐Ÿ“ฑ Telegram"},{"rule_set":"geosite-geolocation-!cn","outbound":"โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-cn","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geoip-cn","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-openai","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-openai.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-anthropic","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-anthropic.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-google-gemini","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google-gemini.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-netflix","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-netflix.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-telegram","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-telegram.srs","http_client":"default","update_interval":"24h0m0s"},{"type":"remote","tag":"geosite-geolocation-!cn","url":"https://gh-proxy.com/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs","http_client":"default","update_interval":"24h0m0s"}],"final":"โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ","auto_detect_interface":true,"default_domain_resolver":"local"}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-3a97d11a.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-3a97d11a.json new file mode 100644 index 00000000..bdea619c --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-3a97d11a.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"ntp":{"enabled":true,"server":"ntp.aliyun.com","server_port":123,"interval":"30m","detour":"DIRECT"},"dns":{"servers":[{"tag":"local","type":"local"},{"tag":"hosts_fix","type":"hosts","predefined":{"dns.huaweicloud.com":["180.163.150.33","180.163.151.33"],"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"mtalk.google.com":["142.250.107.188","142.251.170.188","108.177.125.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","74.125.200.188"],"dl.google.com":["180.163.151.161"],"dl.l.google.com":["180.163.150.33"]}},{"tag":"alidns-dot","type":"tls","server":"1.1.1.1","server_port":853,"domain_resolver":"hosts_fix","detour":"DIRECT"},{"tag":"alidns-quic","type":"quic","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"DIRECT"},{"tag":"ggdns","type":"https","server":"1.1.1.1","domain_resolver":"hosts_fix","detour":"PROXY"},{"tag":"doh-ech","type":"https","server":"1.1.1.1","path":"/dns-query","detour":"PROXY"},{"tag":"fakeip","type":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","hm.baidu.com","tracking.miui.com","douyinvod.com","douyincdn.com","ixigua.com","pstatp.com","bytecdn.com","volccdn.com","dl.delivery.mp.microsoft.com","update.microsoft.com","windowsupdate.com","speedtest.net","fast.com","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn","dashscope.aliyuncs.com","api.moonshot.cn","api.baichuan-ai.com","api.minimax.chat","api.sensenova.cn","api.iflytek.com","api.bilibili.com","www.bilibili.com","xinghuo.xfyun.cn","chatglm.cn","bigmodel.cn","volces.com","lingyiwanwu.com","stepfun.com","chat.deepseek.com","www.deepseek.com","zhipuai.cn","market.xiaomi.com"],"server":"alidns-quic"},{"domain_suffix":["lancache.steamcontent.com"],"server":"local"},{"domain_suffix":["steamcontent.com","steamserver.net","epicgames.com","gog.com","battle.net","blizzard.com","origin.com","ea.com","ubisoft.com","rockstargames.com","play.google.com","ggpht.com","googleusercontent.com","android.com","app-measurement.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com"],"server":"fakeip"},{"domain_suffix":["่Š‚็‚นๅŸŸๅ"],"server":"doh-ech"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":["proxy","games","ai"],"query_type":["A","AAAA"],"server":"fakeip","rewrite_ttl":300,"client_subnet":"119.134.100.0/24"},{"domain_suffix":[".cn",".com.cn"],"action":"evaluate","server":"alidns-dot"},{"domain_suffix":[".cn",".com.cn"],"server":"alidns-quic"},{"match_response":true,"rule_set":"cnip","action":"route","server":"local"},{"match_response":true,"action":"respond"}],"final":"doh-ech","strategy":"prefer_ipv4","reverse_mapping":true,"cache_capacity":65536,"optimistic":true},"inbounds":[{"type":"tun","tag":"tun-in","address":["10.8.0.1/24"],"mtu":1500,"stack":"mixed","auto_route":true,"strict_route":true},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns-quic"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO","DIRECT"],"default":"AUTO","interrupt_exist_connections":false},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿš€ CF-ไผ˜้€‰-Visa","๐Ÿš€ CF-ไผ˜้€‰-DO"],"url":"http://cp.cloudflare.com/","interval":"10m","tolerance":50,"idle_timeout":"30m","interrupt_exist_connections":false},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY","interrupt_exist_connections":false},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT","interrupt_exist_connections":false},{"type":"selector","tag":"Final","outbounds":["PROXY","DIRECT","REJECT-DROP"],"default":"REJECT-DROP","interrupt_exist_connections":false},{"type":"block","tag":"REJECT-DROP"},{"type":"vless","tag":"๐Ÿš€ CF-ไผ˜้€‰-Visa","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns-quic","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"],"ech":{"enabled":false}}},{"type":"vless","tag":"๐Ÿš€ CF-ไผ˜้€‰-DO","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","domain_resolver":"alidns-quic","transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"}},"tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"},"alpn":["http/1.1"],"ech":{"enabled":false}}}],"http_clients":[{"tag":"default","detour":"PROXY"}],"route":{"final":"Final","default_domain_resolver":"alidns-quic","rules":[{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject"},{"wifi_ssid":["MyHomeWiFi"],"outbound":"PROXY"},{"wifi_bssid":["00:11:22:33:44:55"],"outbound":"DIRECT"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"sniff"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn","httpdns"]},{"protocol":"stun"}],"action":"reject"},{"domain_keyword":["ntp","time"],"network":"udp","port":123,"outbound":"DIRECT"},{"type":"logical","mode":"and","rules":[{"domain_suffix":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com"]},{"port":[443,5228]}],"outbound":"PROXY"},{"rule_set":"anti_fraud","action":"reject"},{"ip_is_private":true,"outbound":"DIRECT"},{"ip_cidr":["198.18.0.0/15"],"outbound":"PROXY"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"rule_set":["telegramip","geosite-google","proxy","games","ai"],"outbound":"PROXY"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"action":"resolve"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube","org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"}],"rule_set":[{"tag":"geosite-category-ads-all","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite_adguard","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite-google","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h"},{"tag":"geosite-youtube","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h"},{"tag":"proxy","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","http_client":"default","update_interval":"48h"},{"tag":"games","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h"},{"tag":"ai","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h"},{"tag":"private","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h"},{"tag":"anti_fraud","type":"remote","format":"source","url":"https://raw.githubusercontent.com/hwsaya/nothing/refs/heads/main/rules/FuckFZ.json","update_interval":"48h"},{"tag":"cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h"},{"tag":"microsoft-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"apple-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"google-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"games-cn","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h"},{"tag":"networktest","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h"},{"tag":"telegramip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"default","update_interval":"48h"},{"tag":"cnip","type":"remote","format":"binary","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h"}],"auto_detect_interface":true},"experimental":{"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://github.com/MetaCubeX/metacubexd/releases/latest/download/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_dns":true,"store_fakeip":true},"debug":{"gc_percent":50,"memory_limit":"200MB"}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-5f068761.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-5f068761.json new file mode 100644 index 00000000..da5671af --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-5f068761.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"dns":{"servers":[{"type":"local","tag":"local"},{"type":"hosts","tag":"hosts_fix","predefined":{"dns.huaweicloud.com":["180.163.150.33","180.163.151.33"],"dns.alidns.com":["223.5.5.5","223.6.6.6"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"mtalk.google.com":["142.250.107.188","142.251.170.188","108.177.125.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","74.125.200.188"],"dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33"}},{"type":"tls","tag":"alidns-dot","detour":"DIRECT","domain_resolver":"hosts_fix","server":"1.1.1.1","server_port":853},{"type":"quic","tag":"alidns-quic","detour":"DIRECT","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"ggdns","detour":"PROXY","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"fakeip","tag":"fakeip","inet4_range":"198.18.0.0/15"}],"rules":[{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","hm.baidu.com","tracking.miui.com","douyinvod.com","douyincdn.com","ixigua.com","pstatp.com","bytecdn.com","volccdn.com","dl.delivery.mp.microsoft.com","update.microsoft.com","windowsupdate.com","speedtest.net","fast.com","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn","dashscope.aliyuncs.com","api.moonshot.cn","api.baichuan-ai.com","api.minimax.chat","api.sensenova.cn","api.iflytek.com","api.bilibili.com","www.bilibili.com","xinghuo.xfyun.cn","chatglm.cn","bigmodel.cn","volces.com","lingyiwanwu.com","stepfun.com","chat.deepseek.com","www.deepseek.com","zhipuai.cn","market.xiaomi.com"],"server":"alidns-quic"},{"domain_suffix":"lancache.steamcontent.com","server":"local"},{"domain_suffix":["steamcontent.com","steamserver.net","epicgames.com","gog.com","battle.net","blizzard.com","origin.com","ea.com","ubisoft.com","rockstargames.com","play.google.com","ggpht.com","googleusercontent.com","android.com","app-measurement.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com","beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com"],"server":"fakeip"},{"query_type":["A","AAAA"],"rule_set":["proxy","games","ai"],"server":"fakeip","rewrite_ttl":300},{"domain_suffix":[".cn",".com.cn"],"action":"evaluate","server":"alidns-dot"},{"domain_suffix":[".cn",".com.cn"],"server":"alidns-quic"},{"match_response":true,"rule_set":"cnip","action":"route","server":"local"},{"match_response":true,"action":"respond"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"}],"final":"ggdns","reverse_mapping":true,"strategy":"prefer_ipv4","cache_capacity":65536,"optimistic":true},"ntp":{"enabled":true,"interval":"30m0s","server":"ntp.aliyun.com","server_port":123,"detour":"DIRECT"},"http_clients":[{"tag":"default","version":2,"detour":"PROXY","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"tun","tag":"tun-in","mtu":1500,"address":"10.8.0.1/24","auto_route":true,"strict_route":true,"stack":"mixed"},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns-quic"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿ‡บ๐Ÿ‡ธ pkpk01","๐Ÿ‡บ๐Ÿ‡ธ pkpk02","DIRECT"],"default":"AUTO"},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿ‡บ๐Ÿ‡ธ pkpk01","๐Ÿ‡บ๐Ÿ‡ธ pkpk02"],"url":"http://www.gstatic.com/generate_204","interval":"10m0s","tolerance":50,"idle_timeout":"30m0s"},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY"},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT"},{"type":"selector","tag":"Final","outbounds":["PROXY","DIRECT","REJECT-DROP"],"default":"PROXY"},{"type":"block","tag":"REJECT-DROP"},{"type":"vless","tag":"๐Ÿ‡บ๐Ÿ‡ธ pkpk01","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/pkpk-vl","headers":{"Host":"่Š‚็‚นๅŸŸๅ"},"max_early_data":2560,"early_data_header_name":"Sec-WebSocket-Protocol"}},{"type":"vless","tag":"๐Ÿ‡บ๐Ÿ‡ธ pkpk02","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/pkpk-vl","headers":{"Host":"่Š‚็‚นๅŸŸๅ"},"max_early_data":2560,"early_data_header_name":"Sec-WebSocket-Protocol"}}],"route":{"rules":[{"action":"sniff"},{"type":"logical","mode":"and","rules":[{"protocol":"quic"},{"port":443}],"action":"reject","method":"drop"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube","org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"},{"type":"logical","mode":"and","rules":[{"domain_suffix":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com"]},{"port":[443,5228]}],"outbound":"PROXY"},{"rule_set":["telegramip","geosite-google","proxy","games","ai"],"outbound":"PROXY"},{"ip_cidr":"198.18.0.0/15","outbound":"PROXY"},{"wifi_ssid":"MyHomeWiFi","outbound":"PROXY"},{"action":"sniff"},{"network":"udp","domain_keyword":["ntp","time"],"port":123,"outbound":"DIRECT"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"wifi_bssid":"00:11:22:33:44:55","outbound":"DIRECT"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"ip_cidr":["1.1.1.1/32"],"outbound":"DIRECT"},{"domain":["www.google.com","www.apple.com"],"outbound":"DIRECT"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn","httpdns"]},{"protocol":"stun"}],"action":"reject"},{"rule_set":"anti_fraud","action":"reject"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"ip_is_private":true,"outbound":"DIRECT"},{"action":"resolve"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite_adguard","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"proxy","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"ai","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"anti_fraud","url":"https://raw.githubusercontent.com/hwsaya/nothing/refs/heads/main/rules/FuckFZ.json","update_interval":"48h0m0s"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"google-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"networktest","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegramip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h0m0s"}],"final":"Final","auto_detect_interface":true,"default_domain_resolver":"alidns-quic"},"experimental":{"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://github.com/MetaCubeX/metacubexd/releases/latest/download/metacubexd.zip","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"debug":{"gc_percent":50,"memory_limit":"200MB"}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.20-.json-1a52beb4.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.20-.json-1a52beb4.json new file mode 100644 index 00000000..085a43ff --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.20-.json-1a52beb4.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"dns":{"servers":[{"type":"local","tag":"local"},{"type":"hosts","tag":"hosts_fix","predefined":{"dns.huaweicloud.com":["180.163.150.33","180.163.151.33"],"dns.alidns.com":["223.5.5.5","223.6.6.6"],"dns.adguard.com":["94.140.14.15","94.140.15.16","2a10:50c0::ad1:ff","2a10:50c0::ad2:ff"],"doh.pub":["1.12.12.21","120.53.53.53"],"dns.google":["8.8.8.8","8.8.4.4"],"cloudflare-dns.com":["104.16.248.249","104.16.249.249"],"mtalk.google.com":["142.250.107.188","142.251.170.188","108.177.125.188"],"alt1-mtalk.google.com":["2607:f8b0:4023:1c05::bc","74.125.200.188"],"dl.google.com":"180.163.151.161","dl.l.google.com":"180.163.150.33"}},{"type":"tls","tag":"alidns-dot","detour":"DIRECT","domain_resolver":"hosts_fix","server":"1.1.1.1","server_port":853},{"type":"quic","tag":"alidns-quic","detour":"DIRECT","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"ggdns","detour":"PROXY","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"fakeip","tag":"fakeip","inet4_range":"198.18.0.0/15","inet6_range":"fc00::/18"},{"type":"tls","tag":"adguard-dns","detour":"PROXY","domain_resolver":"hosts_fix","server":"1.1.1.1","server_port":853}],"rules":[{"domain_suffix":["beacons.gvt2.com","beacons2.gvt2.com","beacons3.gvt2.com"],"action":"reject"},{"domain_suffix":[".local",".lan","miwifi.com","tplogin.cn","router.asus.com","tendawifi.com","tplinkwifi.net","hm.baidu.com","tracking.miui.com","douyinvod.com","douyincdn.com","ixigua.com","pstatp.com","bytecdn.com","volccdn.com","dl.delivery.mp.microsoft.com","update.microsoft.com","windowsupdate.com","speedtest.net","fast.com","zhihu.com","zhimg.com","jd.com","360buyimg.com","xfyun.cn","dashscope.aliyuncs.com","api.moonshot.cn","api.baichuan-ai.com","api.minimax.chat","api.sensenova.cn","api.iflytek.com","api.bilibili.com","www.bilibili.com","xinghuo.xfyun.cn","chatglm.cn","bigmodel.cn","volces.com","lingyiwanwu.com","stepfun.com","chat.deepseek.com","www.deepseek.com","zhipuai.cn","market.xiaomi.com"],"server":"alidns-quic"},{"domain_suffix":"lancache.steamcontent.com","server":"local"},{"domain_suffix":["steamcontent.com","steamserver.net","epicgames.com","gog.com","battle.net","blizzard.com","origin.com","ea.com","ubisoft.com","rockstargames.com","play.google.com","ggpht.com","googleusercontent.com","android.com","app-measurement.com","firebaselogging.googleapis.com","firebaselogging-pa.googleapis.com"],"server":"fakeip"},{"query_type":["A","AAAA"],"domain_suffix":"steamcontent.com","server":"fakeip"},{"query_type":["A","AAAA"],"rule_set":["proxy","games","ai"],"server":"adguard-dns"},{"query_type":["A","AAAA"],"rule_set":["proxy","games","ai"],"server":"fakeip","rewrite_ttl":300},{"domain_suffix":[".cn",".com.cn"],"action":"evaluate","server":"alidns-dot"},{"query_type":["A","AAAA"],"invert":true,"action":"predefined","rcode":"NOERROR"},{"rule_set":["httpDNS","DNSreject","Ads"],"action":"predefined","rcode":"NOERROR"},{"rule_set":["private","Filter"],"server":"alidns-quic"},{"domain_suffix":[".cn",".com.cn"],"server":"alidns-quic"},{"rule_set":"cnip","match_response":true,"server":"local"},{"match_response":true,"action":"respond"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"}],"final":"ggdns","reverse_mapping":true,"strategy":"prefer_ipv4","timeout":"3s","cache_capacity":65536,"optimistic":true},"ntp":{"enabled":true,"interval":"30m0s","server":"ntp.aliyun.com","server_port":123,"detour":"DIRECT"},"http_clients":[{"tag":"default","version":2,"detour":"PROXY","stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"tun","tag":"tun-in","mtu":1500,"address":"10.8.0.1/24","auto_route":true,"strict_route":true,"stack":"mixed"},{"type":"mixed","tag":"mixed-in","listen":"127.0.0.1","listen_port":7890}],"outbounds":[{"type":"direct","tag":"DIRECT","domain_resolver":"alidns-quic"},{"type":"selector","tag":"PROXY","outbounds":["AUTO","๐Ÿ‡บ๐Ÿ‡ธ pkpk01","๐Ÿ‡บ๐Ÿ‡ธ pkpk02","DIRECT"],"default":"AUTO"},{"type":"urltest","tag":"AUTO","outbounds":["๐Ÿ‡บ๐Ÿ‡ธ pkpk01","๐Ÿ‡บ๐Ÿ‡ธ pkpk02"],"url":"http://www.gstatic.com/generate_204","interval":"10m0s","tolerance":50,"idle_timeout":"30m0s"},{"type":"selector","tag":"GLOBAL","outbounds":["PROXY","DIRECT"],"default":"PROXY"},{"type":"selector","tag":"CN","outbounds":["DIRECT","PROXY"],"default":"DIRECT"},{"type":"selector","tag":"Final","outbounds":["PROXY","DIRECT","REJECT-DROP"],"default":"PROXY"},{"type":"block","tag":"REJECT-DROP"},{"type":"vless","tag":"๐Ÿ‡บ๐Ÿ‡ธ pkpk01","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","udp_fragment":true,"domain_resolver":"alidns-quic","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"},"max_early_data":2560,"early_data_header_name":"Sec-WebSocket-Protocol"},"packet_encoding":"xudp","connect_timeout":"5s"},{"type":"vless","tag":"๐Ÿ‡บ๐Ÿ‡ธ pkpk02","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","udp_fragment":true,"domain_resolver":"alidns-quic","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"่Š‚็‚นๅŸŸๅ","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/่ทฏๅพ„","headers":{"Host":"่Š‚็‚นๅŸŸๅ"},"max_early_data":2560,"early_data_header_name":"Sec-WebSocket-Protocol"},"packet_encoding":"xudp","connect_timeout":"5s"}],"route":{"rules":[{"action":"sniff"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"action":"route-options","udp_disable_domain_unmapping":true,"udp_connect":true},{"rule_set":["Ads","adobe","httpDNS","DNSreject"],"action":"reject","method":"drop"},{"clash_mode":"Global","outbound":"PROXY"},{"clash_mode":"Direct","outbound":"DIRECT"},{"rule_set":"Apple","outbound":"DIRECT"},{"rule_set":["fcm","Android"],"outbound":"PROXY"},{"domain_suffix":["google.cn","googleapis.cn"],"outbound":"PROXY"},{"rule_set":["telegram","telegram_ip","youtube","instagram","Google","ai","GlobalMedia","Proxy","gfw"],"outbound":"PROXY"},{"package_name":"com.wwwscn.yuexingbao","outbound":"DIRECT"},{"protocol":["ntp","icmp"],"outbound":"DIRECT"},{"rule_set":["private","Applications","OnePlus"],"outbound":"DIRECT"},{"domain_suffix":["sponsor.ajay.app","ifbapp.com","allawnos.com","heytapmobi.com","steamserver.net"],"outbound":"DIRECT"},{"protocol":["stun","quic","dtls"],"action":"reject"},{"domain":["astrategy.beacon.qq.com","beacon.qq.com","abyss.cyapi.cn","ad.cyapi.cn","gather.colorfulclouds.net"],"action":"reject","method":"drop"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"package_name":["com.google.android.youtube","app.revanced.android.youtube","org.telegram.messenger","org.telegram.messenger.beta"],"outbound":"PROXY"},{"type":"logical","mode":"and","rules":[{"domain_suffix":["mtalk.google.com","alt1-mtalk.google.com","alt2-mtalk.google.com","alt3-mtalk.google.com","alt4-mtalk.google.com","alt5-mtalk.google.com","alt6-mtalk.google.com","alt7-mtalk.google.com","alt8-mtalk.google.com"]},{"port":[443,5228]}],"outbound":"PROXY"},{"rule_set":["telegramip","geosite-google","proxy","games","ai"],"outbound":"PROXY"},{"ip_cidr":"198.18.0.0/15","outbound":"PROXY"},{"rule_set":["private","cn","cnip","microsoft-cn","apple-cn","google-cn","games-cn","networktest"],"outbound":"DIRECT"},{"rule_set":["geosite_adguard","geosite-category-ads-all"],"action":"reject"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn","httpdns"]},{"protocol":"stun"}],"action":"reject"},{"rule_set":"anti_fraud","action":"reject"},{"ip_is_private":true,"outbound":"DIRECT"},{"action":"resolve"}],"rule_set":[{"type":"remote","tag":"geosite-category-ads-all","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite_adguard","url":"https://cdn.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblocksingbox.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-google","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"geosite-youtube","url":"https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"proxy","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"ai","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"anti_fraud","url":"https://raw.githubusercontent.com/hwsaya/nothing/refs/heads/main/rules/FuckFZ.json","update_interval":"48h0m0s"},{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"google-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"networktest","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegramip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram_ip","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geoip/telegram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Proxy","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"gfw","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/gfw.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Filter","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/fakeip-filter.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"DNSreject","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/AdGuardSDNSFilter/AdGuardSDNSFilter.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"httpDNS","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/BlockHttpDNS/BlockHttpDNS.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Ads","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/ads.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"adobe","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/adobe.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Apple","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-apple.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"fcm","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/GoogleFCM/GoogleFCM.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Android","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/Android/Android.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"telegram","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-telegram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"youtube","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"instagram","url":"https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-instagram.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Google","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/Google/Google.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"GlobalMedia","url":"https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/category-entertainment.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"Applications","url":"https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/applications.srs","http_client":"default","update_interval":"48h0m0s"},{"type":"remote","tag":"OnePlus","url":"https://raw.githubusercontent.com/senshinya/singbox_ruleset/main/rule/OnePlus/OnePlus.srs","http_client":"default","update_interval":"48h0m0s"}],"final":"Final","auto_detect_interface":true,"default_domain_resolver":"alidns-quic"},"experimental":{"cache_file":{"enabled":true,"path":"cache.db","cache_id":"cinchov","store_fakeip":true,"store_dns":true},"clash_api":{"external_controller":"127.0.0.1:9090","external_ui":"ui","external_ui_download_url":"https://github.com/MetaCubeX/metacubexd/releases/download/v1.245.1/compressed-dist.tgz","external_ui_download_detour":"PROXY","secret":"sbc-test-token","default_mode":"rule"},"debug":{"gc_percent":100,"memory_limit":"400MB"}}} diff --git a/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.39-.json-f8d3f44a.json b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.39-.json-f8d3f44a.json new file mode 100644 index 00000000..5f0e3b0a --- /dev/null +++ b/fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.39-.json-f8d3f44a.json @@ -0,0 +1 @@ +{"log":{"level":"trace","timestamp":true},"dns":{"servers":[{"type":"hosts","tag":"hosts_fix","predefined":{"dns.google":["8.8.8.8","8.8.4.4"]}},{"type":"local","tag":"local-dns"},{"type":"fakeip","tag":"fakeip","inet4_range":"198.18.0.0/15"},{"type":"https","tag":"ggdns","detour":"proxy","domain_resolver":"hosts_fix","server":"1.1.1.1"},{"type":"https","tag":"backup-dns","detour":"proxy","domain_resolver":"hosts_fix","server":"1.1.1.1"}],"rules":[{"ip_version":6,"action":"reject"},{"query_type":["SVCB","HTTPS","PTR"],"action":"reject"},{"rule_set":"private","server":"local-dns"},{"rule_set":["cn","microsoft-cn","apple-cn","games-cn"],"server":"local-dns"},{"rule_set":["Google","fcm","Android","proxy","gfw","ai"],"server":"fakeip","rewrite_ttl":300},{"rule_set":["httpDNS","DNSreject","ads"],"action":"reject"},{"rule_set":["games","networktest","fakeip-filter"],"action":"evaluate","server":"ggdns"},{"rule_set":["games","networktest","fakeip-filter"],"match_response":true,"ip_is_private":true,"action":"reject"},{"query_type":["A","AAAA"],"invert":true,"action":"reject"}],"final":"ggdns","timeout":"3s","cache_capacity":16384,"optimistic":{"enabled":true,"timeout":"5m0s"}},"http_clients":[{"tag":"default","version":2,"stream_receive_window":0,"connection_receive_window":0}],"inbounds":[{"type":"tun","tag":"tun-in","mtu":9000,"address":"10.8.0.1/24","auto_route":true,"strict_route":true,"udp_timeout":"1m0s","stack":"system","endpoint_independent_nat":true}],"outbounds":[{"type":"direct","tag":"DIRECT"},{"type":"selector","tag":"proxy","outbounds":["auto","CF็”ตไฟกไผ˜้€‰1","CF็”ตไฟกไผ˜้€‰2","CF็”ตไฟกไผ˜้€‰3","CF็”ตไฟกไผ˜้€‰4","CF็”ตไฟกไผ˜้€‰5","CF็”ตไฟกไผ˜้€‰6","CF็”ตไฟกไผ˜้€‰7","CF็”ตไฟกไผ˜้€‰8","CF็”ตไฟกไผ˜้€‰9","CF็”ตไฟกไผ˜้€‰10","CF็”ตไฟกไผ˜้€‰11","CF็”ตไฟกไผ˜้€‰12","CF็”ตไฟกไผ˜้€‰13","CF็”ตไฟกไผ˜้€‰14","CF็”ตไฟกไผ˜้€‰15","CF็”ตไฟกไผ˜้€‰16","DIRECT"],"default":"CF็”ตไฟกไผ˜้€‰1"},{"type":"urltest","tag":"auto","outbounds":["CF็”ตไฟกไผ˜้€‰1","CF็”ตไฟกไผ˜้€‰2","CF็”ตไฟกไผ˜้€‰3","CF็”ตไฟกไผ˜้€‰4","CF็”ตไฟกไผ˜้€‰5","CF็”ตไฟกไผ˜้€‰6","CF็”ตไฟกไผ˜้€‰7","CF็”ตไฟกไผ˜้€‰8","CF็”ตไฟกไผ˜้€‰9","CF็”ตไฟกไผ˜้€‰10","CF็”ตไฟกไผ˜้€‰11","CF็”ตไฟกไผ˜้€‰12","CF็”ตไฟกไผ˜้€‰13","CF็”ตไฟกไผ˜้€‰14","CF็”ตไฟกไผ˜้€‰15","CF็”ตไฟกไผ˜้€‰16"],"url":"http://www.gstatic.com/generate_204","interval":"10m0s"},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰1","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2053,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰2","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2083,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰3","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2087,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰4","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2087,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰5","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2096,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰6","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":8443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰7","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":8443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰8","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":8443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰9","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2083,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰10","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2053,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰11","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":8443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰12","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2053,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰13","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2083,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰14","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2053,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰15","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":443,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}},{"type":"vless","tag":"CF็”ตไฟกไผ˜้€‰16","connect_timeout":"5s","tcp_fast_open":true,"tcp_keep_alive":"30s","tcp_keep_alive_interval":"5s","domain_strategy":"prefer_ipv4","server":"example.com","server_port":2087,"uuid":"00000000-0000-4000-8000-000000000000","tls":{"enabled":true,"server_name":"xn--hlra322yba.cc.cd","utls":{"enabled":true,"fingerprint":"chrome"}},"transport":{"type":"ws","path":"/","headers":{"Host":"xn--hlra322yba.cc.cd"}}}],"route":{"rules":[{"action":"sniff"},{"domain_suffix":["googleapis.com","googleusercontent.com","www.gstatic.com","github.com","githubusercontent.com"],"outbound":"proxy"},{"protocol":"quic","action":"reject"},{"type":"logical","mode":"or","rules":[{"port":53},{"protocol":"dns"}],"action":"hijack-dns"},{"type":"logical","mode":"and","rules":[{"ip_version":6},{"default_interface_address":"2000::/3","invert":true}],"action":"reject"},{"port":[853,5353],"action":"reject"},{"ip_is_private":true,"outbound":"DIRECT"},{"rule_set":"ads","action":"reject"},{"ip_cidr":"198.18.0.0/15","outbound":"proxy"},{"rule_set":["Google","fcm","Android","proxy","gfw","ai","games","networktest"],"outbound":"proxy"},{"rule_set":["cn","cnip"],"outbound":"DIRECT"},{"rule_set":"private","outbound":"DIRECT"},{"rule_set":["microsoft-cn","apple-cn","games-cn"],"outbound":"DIRECT"},{"protocol":["stun","dtls"],"action":"reject"},{"type":"logical","mode":"or","rules":[{"network":"udp","port":[3478,5349,5350,19302,10000]},{"domain_regex":"^stun\\..+"},{"domain_keyword":["stun","turn"]}],"action":"reject"},{"action":"route-options","udp_disable_domain_unmapping":true,"udp_connect":true},{"action":"resolve"},{"outbound":"proxy"}],"rule_set":[{"type":"remote","tag":"cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"cnip","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"private","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"ads","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ads.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"proxy","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"gfw","url":"https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/gfw.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"ai","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"games","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"microsoft-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"apple-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"games-cn","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"networktest","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"httpDNS","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/BlockHttpDNS/BlockHttpDNS.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"DNSreject","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/AdGuardSDNSFilter/AdGuardSDNSFilter.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"Google","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/Google/Google.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"fcm","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/GoogleFCM/GoogleFCM.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"Android","url":"https://cdn.jsdelivr.net/gh/senshinya/singbox_ruleset@main/rule/Android/Android.srs","update_interval":"48h0m0s"},{"type":"remote","tag":"fakeip-filter","url":"https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/fakeip-filter.srs","update_interval":"48h0m0s"}],"final":"proxy","auto_detect_interface":true,"default_domain_resolver":"ggdns","default_http_client":"default"},"services":[{"type":"api","tag":"api","listen":"127.0.0.1","listen_port":9091,"access_control_allow_origin":"https://sing-box-dashboard.sagernet.org","access_control_allow_private_network":true,"dashboard":true}],"experimental":{"cache_file":{"enabled":true,"path":"cache.db","store_fakeip":true,"store_dns":true}}} diff --git a/fixtures/external/manifest.json b/fixtures/external/manifest.json index ac89840c..dcc80dfe 100644 --- a/fixtures/external/manifest.json +++ b/fixtures/external/manifest.json @@ -348,7 +348,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-stable", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-7qUoDc/config.json: dns.servers[0].address_strategy: json: unknown field \"address_strategy\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-agjXF1/config.json: dns.servers[0].address_strategy: json: unknown field \"address_strategy\"" } }, { @@ -1912,7 +1912,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-Hmotl4/config.json: dns.servers[0]: legacy DNS server formats are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-eLGypk/config.json: dns.servers[0]: legacy DNS server formats are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -1942,7 +1942,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-RTwOmY/config.json: dns.servers[0]: legacy DNS server formats are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-ayR1Wt/config.json: dns.servers[0]: legacy DNS server formats are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -1972,7 +1972,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-j7Xv0z/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-SSP5Ui/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2031,7 +2031,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-zSlL0m/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-36gRJS/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2061,7 +2061,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-7i1nnt/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-sfdGWe/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2091,7 +2091,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-2ChhvD/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-T3phCL/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2121,7 +2121,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-STdT6x/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-Di329i/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2209,7 +2209,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-68zR33/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-LNfA44/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2239,7 +2239,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-okkusC/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-l96FQi/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2269,7 +2269,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-330CcY/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-tBc8u4/config.json: dns: legacy DNS fakeip options are deprecated in sing-box 1.12.0 and removed in sing-box 1.14.0, checkout migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats" } }, { @@ -2708,7 +2708,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-RYqGu4/config.json: providers: json: unknown field \"providers\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-Mwc2y6/config.json: providers: json: unknown field \"providers\"" } }, { @@ -3647,6 +3647,494 @@ "reason": "FATAL[0000] initialize outbound[0]: decode public_key: illegal base64 data at input byte 43" } }, + { + "id": "huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-3fe87d44", + "source_repo": "huixiao666/pk-box", + "source_path": "่ฎข้˜…้“พๆŽฅ/1.14.0-alpha.21.reF1ndๆœฌๅœฐๆ–‡ไปถ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-3fe87d44.json", + "normalized_hash": "3fe87d4472b5ee25dddb8c8556c6286e7d7688043e19ca12740421663e8b63fd", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [ + "fill-empty-selector-with-mock-outbounds" + ], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-JzT2ub/config.json: dns.servers[6]: unknown transport type: group" + } + }, + { + "id": "huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-9c3d1b11", + "source_repo": "huixiao666/pk-box", + "source_path": "่ฎข้˜…้“พๆŽฅ/1.14.0-alpha.21.reF1ndไฟฎๅค็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-9c3d1b11.json", + "normalized_hash": "9c3d1b11d0aec86eba8952cc898a4baf0367cd7f4c0d95f433dff96bf44a75cf", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [ + "fill-empty-selector-with-mock-outbounds" + ], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-QCiPsv/config.json: dns.servers[7]: unknown transport type: group" + } + }, + { + "id": "huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-b34f25f1", + "source_repo": "huixiao666/pk-box", + "source_path": "่ฎข้˜…้“พๆŽฅ/1.14.0-alpha.21.reF1ndไผ˜ๅŒ–็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.ref1nd-.json-b34f25f1.json", + "normalized_hash": "b34f25f10dd134cfafce9be5ce575bba3f3043fdf956eaaa92a8ca5a8ece73cb", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [ + "fill-empty-selector-with-mock-outbounds" + ], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-8Z7SdA/config.json: dns.servers[6]: unknown transport type: group" + } + }, + { + "id": "huixiao666-pk-box--1.14.0-alpha.21.refnd-.json-949a0750", + "source_repo": "huixiao666/pk-box", + "source_path": "่ฎข้˜…้“พๆŽฅ/1.14.0-alpha.21.reFnd่ฎข้˜…้“พๆŽฅ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box--1.14.0-alpha.21.refnd-.json-949a0750.json", + "normalized_hash": "949a07505104d85ac378532ebf574f165549c4186a9375ac9ef31907db44f63a", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [ + "fill-empty-selector-with-mock-outbounds" + ], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-w5OOQ2/config.json: dns.servers[6]: unknown transport type: group" + } + }, + { + "id": "huixiao666-pk-box-1.13.xx-1.13.10-11-.json-798c77ac", + "source_repo": "huixiao666/pk-box", + "source_path": "1.13.xx/1.13.10-11(ไธไฟฎๆ”น).json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.13.xx-1.13.10-11-.json-798c77ac.json", + "normalized_hash": "798c77ac6b5ca02aecf2ceb0a0addb5d60d161ec832f29550774a5bf1868d84e", + "detected_version": "1.13", + "channel": "stable", + "fixture_class": "stable", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-stable", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-stable" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.12-16-ref1nd.json-3f43b8d5", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.reF1nd/1.14.0-alpha.12-16-reF1nd.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.12-16-ref1nd.json-3f43b8d5.json", + "normalized_hash": "3f43b8d5f5637fc825d242ebda5477d865733bc3c32d05694c2da32ed0b3e61b", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-TtjlLi/config.json: dns.rules[5].clash_mode: json: cannot unmarshal array into Go struct field RawDefaultDNSRule.clash_mode of type string" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.17.ref1nd.json-586fb594", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.reF1nd/1.14.0-alpha.17.reF1nd.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.17.ref1nd.json-586fb594.json", + "normalized_hash": "586fb594e9a99204d8f72dbad7ead9d691e0322dbc564b4d5c44a00964ac4ac9", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-ThYJWG/config.json: dns.rules[5].clash_mode: json: cannot unmarshal array into Go struct field RawDefaultDNSRule.clash_mode of type string" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.27.ref1nd.json-c126df18", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.reF1nd/1.14.0-alpha.27.reF1nd.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.27.ref1nd.json-c126df18.json", + "normalized_hash": "c126df183052d327fb990cc916271e425ef1d3104218a361de451c6b51b6905d", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [ + "fill-empty-selector-with-mock-outbounds" + ], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-RLI8cP/config.json: outbounds[0].providers: json: unknown field \"providers\"" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.31.ref1nd.json-eea67696", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.reF1nd/1.14.0-alpha.31.reF1nd.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.ref1nd-1.14.0-alpha.31.ref1nd.json-eea67696.json", + "normalized_hash": "eea676960a176d2c201bed21c1ef5d35286da837c0a782a80b7923057d23f8e6", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [ + "fill-empty-selector-with-mock-outbounds" + ], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-HnSjnY/config.json: outbounds[0].providers: json: unknown field \"providers\"" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.12-.json-2eeb05f0", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.12ไผ˜ๅŒ–็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.12-.json-2eeb05f0.json", + "normalized_hash": "2eeb05f0e30330be46bcdead41c87c8159a9e728e625d61de14b9d35dd6517a0", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.14-.json-8c2a908f", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.14ไผ˜ๅŒ–็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.14-.json-8c2a908f.json", + "normalized_hash": "8c2a908fd8a6d31094c79b30bfc9b0a5edb94d589ae6d0ebe0759c21c82a2a2d", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.16-17-.json-1150bc0b", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.16-17(ไธไฟฎๆ”น).json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.16-17-.json-1150bc0b.json", + "normalized_hash": "1150bc0bc90303b6f8886c95f29cb32968d4a118afc388ef030a9b17fd8943c4", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-36630bef", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.18็ฒพ็ฎ€็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-36630bef.json", + "normalized_hash": "36630bef43b23e70024604d09a35a97f4151a7558b8d70e3962c1ed426c4396d", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-3a97d11a", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.18ไผ˜ๅŒ–็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-3a97d11a.json", + "normalized_hash": "3a97d11afe9c5433a67de541f03d4b6834babf99eaacb019a2690beed3222e37", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-5f068761", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.18็จณๅฎš็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.18-.json-5f068761.json", + "normalized_hash": "5f068761946b101b2a1aad9a810fcc4d2ee33e083e2212b67e5f24e62d44f236", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.20-.json-1a52beb4", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.20ไผ˜ๅŒ–็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.20-.json-1a52beb4.json", + "normalized_hash": "1a52beb47c67d9cbdce6dff3a12789168001eb8ca509aa4906cd71f8932d0843", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export", + "official-check" + ], + "official_check": "sing-box-testing", + "counts_toward_200": true, + "official_check_result": { + "status": "pass", + "binary": "sing-box-testing" + } + }, + { + "id": "huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.39-.json-f8d3f44a", + "source_repo": "huixiao666/pk-box", + "source_path": "1.14.0-alpha.xxx/1.14.0-alpha.39ไผ˜ๅŒ–็‰ˆ.json", + "source_commit": "8d8f1631686d3f0de227312e7b2c9c84ed71d679", + "fixture_path": "fixtures/external/huixiao666-pk-box-1.14.0-alpha.xxx-1.14.0-alpha.39-.json-f8d3f44a.json", + "normalized_hash": "f8d3f44acd99641b59eb06ce0f1bdf9fcde7c6661fd14b1ad926b50ce28c9ad9", + "detected_version": "1.14", + "channel": "testing", + "fixture_class": "testing", + "transformations": [], + "expected_gates": [ + "json-parse", + "import", + "derive-graph", + "diagnostics", + "render", + "json-round-trip", + "export" + ], + "official_check": null, + "counts_toward_200": true, + "official_check_result": { + "status": "failed", + "binary": "sing-box-testing", + "reason": "ERROR[0000] legacy domain strategy options is deprecated in sing-box 1.12.0 and will be removed in sing-box 1.14.0, checkout documentation for migration: https://sing-box.sagernet.org/migration/#migrate-domain-strategy-options FATAL[0000] to continuing using this feature, set environment variable ENABLE_DEPRECATED_LEGACY_DOMAIN_STRATEGY_OPTIONS=true" + } + }, { "id": "iptunnels-iptunnels-sing-box-etc-sing-box-config.json-37aa9569", "source_repo": "IPTUNNELS/IPTUNNELS", @@ -5070,7 +5558,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-9AEz8m/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-VrEY1q/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5100,7 +5588,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-GosbH5/config.json: providers: json: unknown field \"providers\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-lumISa/config.json: providers: json: unknown field \"providers\"" } }, { @@ -5130,7 +5618,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-z84nNE/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-SaEkPk/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5160,7 +5648,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-BY51jo/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-FZiegr/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5190,7 +5678,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-leLm74/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-CkKjRQ/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5278,7 +5766,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-v6E9qE/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-Zu5ENG/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5308,7 +5796,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-jav4uQ/config.json: providers: json: unknown field \"providers\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-qwOuH1/config.json: providers: json: unknown field \"providers\"" } }, { @@ -5338,7 +5826,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-hXPiw9/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-Bg6dbh/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5368,7 +5856,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-m0iNGV/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-yNWhFy/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -5398,7 +5886,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-1.12", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-H6Sat0/config.json: outbounds[14].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-OeBolm/config.json: outbounds[14].filter: json: unknown field \"filter\"" } }, { @@ -6064,7 +6552,7 @@ "official_check_result": { "status": "failed", "binary": "sing-box-testing", - "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-McE5lD/config.json: outbounds[18].filter: json: unknown field \"filter\"" + "reason": "FATAL[0000] decode config at /var/folders/40/y5v_d1m548j9ytv981cn3bjc0000gn/T/sbc-external-official-E1XRyk/config.json: outbounds[18].filter: json: unknown field \"filter\"" } }, { diff --git a/fixtures/external/rejected.json b/fixtures/external/rejected.json index 26274d19..5e592fe8 100644 --- a/fixtures/external/rejected.json +++ b/fixtures/external/rejected.json @@ -625,6 +625,391 @@ "source": "HideinOSS/sing-box-configuration-examples/Windows/sing-box-rule-set/โ‰ฅsing-box-1.9.0/server-shadowtls-IPv6.json", "reason": "repo-fixture-cap" }, + { + "source": "huixiao666/pk-box/1.11.4ไผ˜ๅŒ–้…็ฝฎ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token ']', ...\"\n },\n ],\n \"rout\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.11.4ๅฎŒๆ•ดๆณจ้‡Š.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.12.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.12ไฟฎๅคไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.12่ฟ›้˜ถ็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.13.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n //่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.13ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n //่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.14.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.8ไผ˜ๅŒ–้…็ฝฎ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token ']', ...\"\n },\n ],\n \"rout\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/1.13.9ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected ',' or ']' after array element in JSON at position 2696 (line 144 column 9)" + }, + { + "source": "huixiao666/pk-box/1.13.xx/ๆณจ้‡Š/1.13.12.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// =======\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/ๆณจ้‡Š/1.13.13.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// โ•”โ•โ•โ•โ•โ•โ•\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/ๆณจ้‡Š/1.13.14.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// โ”Œโ”€โ”€โ”€โ”€โ”€โ”€\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.13.xx/ๆณจ้‡Š/ไธ‰ไธช็‰ˆๆœฌๅฎŒๆ•ดๆณจ้‡Š.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.reF1nd/1.14.0-alpha.21.reF1nd.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.reF1nd/1.14.0-alpha.26.reF1nd.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected double-quoted property name in JSON at position 8134 (line 356 column 20)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.reF1nd/1.14.0-alpha.reF1nd12-21ๅฎŒๆ•ดๆณจ้‡Š.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.15ไฟฎๅคไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected ',' or '}' after property value in JSON at position 2899 (line 114 column 45)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.18ๅผบๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected ',' or '}' after property value in JSON at position 8482 (line 395 column 29)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.20ๅ“่ถŠ็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.20็ฒพ็ฎ€็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected ',' or ']' after array element in JSON at position 2688 (line 136 column 5)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.21-tor็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.21ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.21็‰ˆๆœฌ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.21็‰นๆฎŠ็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.22-tor็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.22ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.23.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.23ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.24.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.24ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.24ไฟฎๅค็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.24็ฒพ็ฎ€็‰ˆ(ไธๆŽจ่).json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n // {\n /\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.25ไฟฎๅคไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.25ๅœๆญขไฝฟ็”จ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.25็ฒพ่‡ดไผ˜ๅŒ–.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.26.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\"[\n //่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.26ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\"[\n // ่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.26ไฟฎๅคv4็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n // ่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.27-114dns็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n // ่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.27.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '็ซฏ', ...\"er_port\": ็ซฏๅฃ,\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.28-114็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n // ่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.28.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n // ่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.29.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\",\n //่Š‚็‚นๅ็งฐ\n \"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.31.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.31ไผ˜ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.31ไฟฎๅค็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.31ๆทฑๅบฆไผ˜ๅŒ–.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.32.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.32็ฎ€ๅŒ–็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.33.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected ',' or ']' after array element in JSON at position 2625 (line 146 column 9)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.34.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.35.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.36.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.37.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.38.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.39.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/1.14.0-alpha.40.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', ...\" },\n //่Š‚็‚น้…็ฝฎ\n ]\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.12-17.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.18.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.20.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.21.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.22.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// =======\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.23.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"/*\n * โ•”โ•โ•โ•\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.24.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// =======\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.25.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.25fakeip็‰ˆ.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// โ•”โ•โ•โ•โ•โ•โ•\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.26.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// โ•”โ•โ•โ•โ•โ•โ•\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.27.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// =======\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.29.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// โ•”โ•โ•โ•โ•โ•โ•\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.31.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// =======\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.32.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.33.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// =======\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.35.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Unexpected token '/', \"// โ”Œโ”€โ”€โ”€โ”€โ”€โ”€\"... is not valid JSON" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.38.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/1.14.0-alpha.xxx/ๅฏนๆฏ”ๆณจ้‡Š/1.14.0-alpha.40.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, + { + "source": "huixiao666/pk-box/่ฎข้˜…้“พๆŽฅ/1.14.0-alpha.21.reF1ndๅฎŒๆ•ดๆณจ้‡Š.json", + "reason": "ingest-failed", + "detail": "SyntaxError: Expected property name or '}' in JSON at position 4 (line 2 column 3)" + }, { "source": "IPTUNNELS/IPTUNNELS/sing-box/etc/sing-box/commonports.json", "reason": "not-sing-box-config" diff --git a/scripts/update-external-fixtures.mjs b/scripts/update-external-fixtures.mjs index 017cb04e..7134708e 100644 --- a/scripts/update-external-fixtures.mjs +++ b/scripts/update-external-fixtures.mjs @@ -1,5 +1,5 @@ import { createHash } from "node:crypto"; -import { mkdirSync, readdirSync, rmSync, writeFileSync } from "node:fs"; +import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; @@ -7,11 +7,26 @@ const root = dirname(fileURLToPath(import.meta.url)); const repoRoot = join(root, ".."); const outputDir = join(repoRoot, "fixtures", "external"); const fetchTimeoutMs = 15_000; -const maxAcceptedFixtures = Number(process.env.MAX_EXTERNAL_FIXTURES ?? 240); +// 320 comfortably covers the checked-in corpus (237 after the pk-box ingest) โ€” a FULL refresh with a +// cap below the committed manifest size would silently truncate the corpus back down. +const maxAcceptedFixtures = Number(process.env.MAX_EXTERNAL_FIXTURES ?? 320); const maxAcceptedPerRepo = Number(process.env.MAX_EXTERNAL_FIXTURES_PER_REPO ?? 30); +// CLI: +// node scripts/update-external-fixtures.mjs # full corpus rebuild +// node scripts/update-external-fixtures.mjs --append --repo owner/name # scoped: re-ingest ONLY +// the named repo(s), keeping every other repo's fixtures + manifest entries untouched. Use this to +// add or refresh a single source without churning the other ~70 upstreams (which may have moved). +// A source may carry `maxFixtures` to override the per-repo cap (legit large curated collections). +const cliArgs = process.argv.slice(2); +const appendMode = cliArgs.includes("--append"); +const targetRepoNames = cliArgs.filter((arg, index) => cliArgs[index - 1] === "--repo"); + const sourceRepos = [ { repo: "Toperlock/sing-box-subscribe", include: /^config_template\/.*\.json$/, exclude: /sb-config-1\.12\.json$/ }, + // Curated per-release template collection (1.11 โ†’ 1.13.x โ†’ every 1.14 alpha, several variants each) โ€” + // the per-repo cap would drop the newest alphas, so it carries an explicit higher cap. + { repo: "huixiao666/pk-box", include: /\.json$/, maxFixtures: 80 }, { repo: "kj163kj/singbox_proxy_config", include: /\.json$/ }, { repo: "CHIZI-0618/box4magisk", include: /\.json$/ }, { repo: "malikshi/sing-box-examples", include: /\.json$/ }, @@ -132,8 +147,12 @@ function encodePath(path) { } async function fetchRaw(repo, commit, path) { - const url = `https://raw.githubusercontent.com/${repo}/${commit}/${encodePath(path)}`; - const response = await fetchWithTimeout(url, { headers: { "user-agent": "sbc-external-fixture-ingest" } }); + // The contents API honors the auth token (raw.githubusercontent.com does not), so bulk ingests + // stop tripping the anonymous rate limit (observed 429s at ~50 unauthenticated raw fetches). + const url = `https://api.github.com/repos/${repo}/contents/${encodePath(path)}?ref=${commit}`; + const response = await fetchWithTimeout(url, { + headers: { ...authHeaders(), accept: "application/vnd.github.raw" }, + }); if (!response.ok) throw new Error(`Raw fetch failed ${response.status}: ${repo}/${path}`); return response.text(); } @@ -302,16 +321,57 @@ async function collectCandidates(source) { } async function main() { - rmSync(outputDir, { recursive: true, force: true }); - mkdirSync(outputDir, { recursive: true }); + const activeSources = targetRepoNames.length + ? sourceRepos.filter((source) => targetRepoNames.includes(source.repo)) + : sourceRepos; + if (targetRepoNames.length && activeSources.length !== targetRepoNames.length) { + const known = new Set(sourceRepos.map((source) => source.repo)); + const unknown = targetRepoNames.filter((name) => !known.has(name)); + throw new Error(`--repo names not registered in sourceRepos: ${unknown.join(", ")} โ€” register them first.`); + } + if (appendMode && targetRepoNames.length === 0) { + throw new Error("--append requires at least one --repo; a full rebuild must not run in append mode."); + } + if (!appendMode && targetRepoNames.length > 0) { + // Without this guard, `--repo X` alone would wipe the whole corpus and rebuild only X. + throw new Error("--repo requires --append; a full rebuild ignores repo filters and would drop every other repo's fixtures."); + } const manifest = []; const rejected = []; - const seenHashes = new Set(); + if (appendMode) { + // Scoped refresh: keep every non-targeted repo's fixtures + manifest/rejected entries verbatim, + // drop the targeted repos' old outputs, and re-ingest only those repos below. + const targeted = new Set(targetRepoNames); + const existingManifest = JSON.parse(readFileSync(join(outputDir, "manifest.json"), "utf8")); + for (const item of existingManifest) { + if (targeted.has(item.source_repo)) { + rmSync(join(repoRoot, item.fixture_path), { force: true }); + } else { + manifest.push(item); + } + } + const rejectedPath = join(outputDir, "rejected.json"); + if (existsSync(rejectedPath)) { + for (const item of JSON.parse(readFileSync(rejectedPath, "utf8"))) { + const repo = item.source_repo ?? String(item.source ?? "").split("/").slice(0, 2).join("/"); + if (!targeted.has(repo)) rejected.push(item); + } + } + } else { + rmSync(outputDir, { recursive: true, force: true }); + mkdirSync(outputDir, { recursive: true }); + } + + const seenHashes = new Set(manifest.map((item) => item.normalized_hash)); const acceptedByRepo = new Map(); + for (const item of manifest) { + acceptedByRepo.set(item.source_repo, (acceptedByRepo.get(item.source_repo) ?? 0) + 1); + } - sourceLoop: for (const source of sourceRepos) { + sourceLoop: for (const source of activeSources) { if (manifest.length >= maxAcceptedFixtures) break; + const repoCap = source.maxFixtures ?? maxAcceptedPerRepo; let candidates = []; try { candidates = await collectCandidates(source); @@ -321,9 +381,14 @@ async function main() { } for (const candidate of candidates) { - if (manifest.length >= maxAcceptedFixtures) break sourceLoop; + if (manifest.length >= maxAcceptedFixtures) { + console.warn( + `WARN: total fixture cap (${maxAcceptedFixtures}) reached at ${candidate.repo}/${candidate.path} โ€” remaining candidates are skipped WITHOUT rejected.json entries. Raise MAX_EXTERNAL_FIXTURES if this is a real ingest.`, + ); + break sourceLoop; + } const repoAcceptedCount = acceptedByRepo.get(candidate.repo) ?? 0; - if (repoAcceptedCount >= maxAcceptedPerRepo) { + if (repoAcceptedCount >= repoCap) { rejected.push({ source: `${candidate.repo}/${candidate.path}`, reason: "repo-fixture-cap" }); continue; } diff --git a/src/domain/diagnostics.ts b/src/domain/diagnostics.ts index 2e33e904..8f0649ac 100644 --- a/src/domain/diagnostics.ts +++ b/src/domain/diagnostics.ts @@ -2611,8 +2611,17 @@ export function validateConfig( push(diagnostics, "warning", "no-outbounds", "/outbounds", "No outbounds are configured."); } - const dialDomainStrategyMessage = - 'Dial field "domain_strategy" is deprecated since sing-box 1.12.0 and scheduled for removal. Migrate to "domain_resolver" (per-entity) or route.default_domain_resolver.'; + // Legacy dial domain_strategy: deprecated since 1.12; on the CURRENT 1.13/1.14 binaries the check + // itself fails ("to continue using this feature, set ENABLE_DEPRECATED_LEGACY_DOMAIN_STRATEGY_OPTIONS + // =true", exit 1 โ€” binary-verified on 1.13.14 + 1.14.0-alpha.40; 1.12.25 still warns and passes). + // So on a 1.13+ target this is an export-blocking ERROR, on 1.12 it stays the historical warning. + // EXCEPTION: dns.servers[] dial fields keep accepting it on every binary (verified: legacy udp server + // with domain_strategy passes check on 1.13.14 AND alpha.40) โ€” that emission stays a warning. + const dialDomainStrategyRemoved = atLeast(version, "1.13"); + const dialDomainStrategyLevel = dialDomainStrategyRemoved ? ("error" as const) : ("warning" as const); + const dialDomainStrategyMessage = dialDomainStrategyRemoved + ? 'Dial field "domain_strategy" is deprecated since sing-box 1.12.0 and the 1.13/1.14 binaries refuse it (sing-box check fails unless ENABLE_DEPRECATED_LEGACY_DOMAIN_STRATEGY_OPTIONS=true). Migrate to "domain_resolver" (per-entity) or route.default_domain_resolver.' + : 'Dial field "domain_strategy" is deprecated since sing-box 1.12.0 and scheduled for removal. Migrate to "domain_resolver" (per-entity) or route.default_domain_resolver.'; const hasDomainStrategy = (entity: unknown): boolean => { if (!entity || typeof entity !== "object") return false; const value = (entity as Record).domain_strategy; @@ -2623,7 +2632,7 @@ export function validateConfig( const tag = outbound.tag ?? `outbound-${index}`; push( diagnostics, - "warning", + dialDomainStrategyLevel, "dial-domain-strategy-deprecated", `/outbounds/${index}/domain_strategy`, `Outbound "${tag}" โ€” ${dialDomainStrategyMessage}`, @@ -2634,10 +2643,11 @@ export function validateConfig( const tag = server.tag ?? `dns-server-${index}`; push( diagnostics, + // DNS-server dial fields still accept domain_strategy on every pinned binary (see above). "warning", "dial-domain-strategy-deprecated", `/dns/servers/${index}/domain_strategy`, - `DNS server "${tag}" โ€” ${dialDomainStrategyMessage}`, + `DNS server "${tag}" โ€” Dial field "domain_strategy" is deprecated since sing-box 1.12.0 and scheduled for removal. Migrate to "domain_resolver" (per-entity) or route.default_domain_resolver.`, ); }); endpoints.forEach((endpoint, index) => { @@ -2645,7 +2655,7 @@ export function validateConfig( const tag = endpoint.tag ?? `endpoint-${index}`; push( diagnostics, - "warning", + dialDomainStrategyLevel, "dial-domain-strategy-deprecated", `/endpoints/${index}/domain_strategy`, `Endpoint "${tag}" โ€” ${dialDomainStrategyMessage}`, @@ -2654,13 +2664,38 @@ export function validateConfig( if (hasDomainStrategy(config.ntp)) { push( diagnostics, - "warning", + dialDomainStrategyLevel, "dial-domain-strategy-deprecated", "/ntp/domain_strategy", `NTP โ€” ${dialDomainStrategyMessage}`, ); } + // clash_mode must be a single string mode โ€” the reF1nd fork accepts arrays here, but vanilla + // sing-box's strict decoder rejects them at load ("cannot unmarshal array into โ€ฆ clash_mode of type + // string", binary-verified on 1.14.0-alpha.40 for both route and DNS rules). Recurses into logical + // sub-rules, where imported fork configs commonly carry the same shape. + const checkClashModeType = (rule: unknown, path: string, owner: string) => { + if (!rule || typeof rule !== "object") return; + const obj = rule as Record; + // JSON null decodes as a no-op into the Go string field (binary-verified exit 0 on all three), so + // only genuinely mistyped shapes (arrays/numbers/bools) are flagged. + if (obj.clash_mode !== undefined && obj.clash_mode !== null && typeof obj.clash_mode !== "string") { + push( + diagnostics, + "error", + "rule-clash-mode-type", + `${path}/clash_mode`, + `${owner} clash_mode must be a single string mode (e.g. "direct"); sing-box's strict decoder rejects other shapes ("cannot unmarshal โ€ฆ clash_mode of type string").`, + ); + } + if (Array.isArray(obj.rules)) { + (obj.rules as unknown[]).forEach((sub, subIndex) => checkClashModeType(sub, `${path}/rules/${subIndex}`, owner)); + } + }; + listItems(config.route?.rules).forEach((rule, index) => checkClashModeType(rule, `/route/rules/${index}`, `Route rule #${index + 1}`)); + listItems(config.dns?.rules).forEach((rule, index) => checkClashModeType(rule, `/dns/rules/${index}`, `DNS rule #${index + 1}`)); + if (channel === "testing") { const tlsAcmeMessage = 'Inline tls.acme is deprecated since sing-box 1.14.0. Move the ACME options into a tls.certificate_provider (type=acme) inline or a top-level certificate_providers[] entry.'; @@ -2753,7 +2788,20 @@ export function validateConfig( ); }); + // Legacy inbound fields (sniff*/domain_strategy): deprecated since 1.11. The 1.13.14 and + // 1.14.0-alpha.40 binaries hard-reject them at decode ("legacy inbound fields are deprecatedโ€ฆ", + // exit 1) โ€” but ONLY for non-zero values: `sniff:false`, `sniff_override_destination:false` and + // `sniff_timeout:"0s"` still pass check on every binary (the Go-side gate keys on non-zero decoded + // values; binary-verified). So on 1.13+ a check-fatal VALUE is an error, while zero-valued presence + // stays the historical warning. 1.12.25 accepts all of it (warning everywhere). + const legacyInboundRemoved = atLeast(version, "1.13"); + const legacyInboundSuffix = " The 1.13/1.14 binaries reject non-zero legacy inbound fields at load (sing-box check fails)."; + const zeroDuration = /^0+(\.0+)?[a-zยต]*$/; const legacyInboundSniffFields = ["sniff", "sniff_override_destination", "sniff_timeout"] as const; + const sniffValueIsCheckFatal = (field: (typeof legacyInboundSniffFields)[number], value: unknown): boolean => { + if (field === "sniff_timeout") return typeof value === "string" && value.trim() !== "" && !zeroDuration.test(value.trim()); + return value === true; + }; const inboundLegacySniffMessage = 'Inbound-level sniff/sniff_timeout/sniff_override_destination are deprecated since sing-box 1.11.0. Move sniffing to a route rule with action="sniff" (and optional timeout/override_destination).'; const inboundLegacyDomainStrategyMessage = @@ -2761,24 +2809,27 @@ export function validateConfig( listItems(config.inbounds).forEach((inbound, index) => { const obj = inbound as Record; const tag = inbound.tag ?? `inbound-${index}`; - for (const field of legacyInboundSniffFields) { - if (obj[field] === undefined) continue; + const present = legacyInboundSniffFields.filter((field) => obj[field] !== undefined); + if (present.length > 0) { + const fatalField = legacyInboundRemoved ? present.find((field) => sniffValueIsCheckFatal(field, obj[field])) : undefined; + const reportField = fatalField ?? present[0]!; push( diagnostics, - "warning", + fatalField ? "error" : "warning", "inbound-legacy-sniff-deprecated", - `/inbounds/${index}/${field}`, - `Inbound "${tag}" โ€” ${inboundLegacySniffMessage}`, + `/inbounds/${index}/${reportField}`, + `Inbound "${tag}" โ€” ${inboundLegacySniffMessage}${fatalField ? legacyInboundSuffix : ""}`, ); - break; } + // A non-empty string is the only shape the binaries reject (`""` passes check everywhere), so the + // existing trigger condition doubles as the check-fatal test. if (typeof obj.domain_strategy === "string" && obj.domain_strategy.length > 0) { push( diagnostics, - "warning", + legacyInboundRemoved ? "error" : "warning", "inbound-legacy-domain-strategy-deprecated", `/inbounds/${index}/domain_strategy`, - `Inbound "${tag}" โ€” ${inboundLegacyDomainStrategyMessage}`, + `Inbound "${tag}" โ€” ${inboundLegacyDomainStrategyMessage}${legacyInboundRemoved ? legacyInboundSuffix : ""}`, ); } }); diff --git a/tests/legacy-field-escalation.test.ts b/tests/legacy-field-escalation.test.ts new file mode 100644 index 00000000..c571405c --- /dev/null +++ b/tests/legacy-field-escalation.test.ts @@ -0,0 +1,132 @@ +import { describe, expect, it } from "vitest"; + +import { validateConfig } from "../src/domain/diagnostics"; +import type { SingBoxConfig } from "../src/domain/types"; + +// Escalations surfaced by the pk-box external corpus cross-check (diagnostics vs the real binaries): +// on the CURRENT pins the check itself fails for these legacy shapes, so a warning would greenlight a +// config the binary rejects. Every claim below is binary-verified (1.12.25 / 1.13.14 / 1.14.0-alpha.40): +// - dial domain_strategy (outbound/endpoint/ntp): 1.12 warns+passes; 1.13.14 + alpha.40 exit 1 +// ("set ENABLE_DEPRECATED_LEGACY_DOMAIN_STRATEGY_OPTIONS=true"). DNS-server dial fields still +// accept it on every binary โ€” that emission must STAY a warning. +// - inbound sniff*/domain_strategy: 1.12 accepts; 1.13.14 + alpha.40 decode-FATAL +// ("legacy inbound fields are deprecatedโ€ฆ"). +// - rule clash_mode must be a string: arrays (a reF1nd-fork extension) decode-FATAL on vanilla +// sing-box for both route and DNS rules. + +function findings(config: SingBoxConfig, channel: "stable" | "testing", version: string, code: string) { + return validateConfig(config, channel, version).filter((d) => d.code === code); +} + +describe("dial domain_strategy escalation (removed behind an env gate on 1.13+ binaries)", () => { + const outbound = { + outbounds: [{ type: "socks", tag: "s", server: "example.com", server_port: 1080, domain_strategy: "prefer_ipv4" }], + } as unknown as SingBoxConfig; + + it("stays a warning on a 1.12 target (binary warns and passes)", () => { + const hits = findings(outbound, "stable", "1.12", "dial-domain-strategy-deprecated"); + expect(hits).toHaveLength(1); + expect(hits[0]!.level).toBe("warning"); + }); + + it("errors on 1.13 and 1.14 targets (binary check exits 1)", () => { + for (const [channel, version] of [["stable", "1.13"], ["testing", "1.14"]] as const) { + const hits = findings(outbound, channel, version, "dial-domain-strategy-deprecated"); + expect(hits, `${channel}/${version}`).toHaveLength(1); + expect(hits[0]!.level, `${channel}/${version}`).toBe("error"); + expect(hits[0]!.message).toContain("ENABLE_DEPRECATED_LEGACY_DOMAIN_STRATEGY_OPTIONS"); + } + }); + + it("dns-server dial domain_strategy STAYS a warning on 1.13 (binary still accepts it there)", () => { + const config = { + dns: { servers: [{ type: "udp", tag: "u", server: "1.1.1.1", domain_strategy: "prefer_ipv4" }] }, + } as unknown as SingBoxConfig; + const hits = findings(config, "stable", "1.13", "dial-domain-strategy-deprecated"); + expect(hits).toHaveLength(1); + expect(hits[0]!.level).toBe("warning"); + }); + + it("endpoint and ntp emissions escalate with the same gate", () => { + const config = { + endpoints: [{ type: "wireguard", tag: "wg", domain_strategy: "prefer_ipv4" }], + ntp: { enabled: true, server: "time.apple.com", domain_strategy: "prefer_ipv4" }, + } as unknown as SingBoxConfig; + const hits = findings(config, "stable", "1.13", "dial-domain-strategy-deprecated"); + expect(hits.map((d) => d.level)).toEqual(["error", "error"]); + }); +}); + +describe("legacy inbound fields escalation (decode-FATAL on 1.13+ binaries)", () => { + const config = { + inbounds: [ + { type: "mixed", tag: "m1", listen: "127.0.0.1", listen_port: 1, sniff: true }, + { type: "mixed", tag: "m2", listen: "127.0.0.1", listen_port: 2, domain_strategy: "prefer_ipv4" }, + ], + } as unknown as SingBoxConfig; + + it("warnings on 1.12 (binary accepts)", () => { + expect(findings(config, "stable", "1.12", "inbound-legacy-sniff-deprecated")[0]?.level).toBe("warning"); + expect(findings(config, "stable", "1.12", "inbound-legacy-domain-strategy-deprecated")[0]?.level).toBe("warning"); + }); + + it("errors on 1.13 and 1.14 (binary decode-FATALs)", () => { + for (const [channel, version] of [["stable", "1.13"], ["testing", "1.14"]] as const) { + expect(findings(config, channel, version, "inbound-legacy-sniff-deprecated")[0]?.level, `sniff ${version}`).toBe("error"); + expect(findings(config, channel, version, "inbound-legacy-domain-strategy-deprecated")[0]?.level, `ds ${version}`).toBe("error"); + } + }); + + it("zero-valued sniff fields stay warnings on 1.13+ โ€” the binaries only reject non-zero values", () => { + // Binary-verified: sniff:false / sniff_override_destination:false / sniff_timeout:"0s" all pass + // check with exit 0 on 1.13.14 AND alpha.40 (the legacy gate keys on non-zero decoded values). + const zeroValued = { + inbounds: [ + { type: "mixed", tag: "z1", listen: "127.0.0.1", listen_port: 1, sniff: false }, + { type: "mixed", tag: "z2", listen: "127.0.0.1", listen_port: 2, sniff_override_destination: false }, + { type: "mixed", tag: "z3", listen: "127.0.0.1", listen_port: 3, sniff_timeout: "0s" }, + ], + } as unknown as SingBoxConfig; + const hits = findings(zeroValued, "stable", "1.13", "inbound-legacy-sniff-deprecated"); + expect(hits).toHaveLength(3); + for (const hit of hits) expect(hit.level).toBe("warning"); + // A non-zero timeout IS check-fatal. + const nonZero = { + inbounds: [{ type: "mixed", tag: "t", listen: "127.0.0.1", listen_port: 4, sniff_timeout: "300ms" }], + } as unknown as SingBoxConfig; + expect(findings(nonZero, "stable", "1.13", "inbound-legacy-sniff-deprecated")[0]?.level).toBe("error"); + }); +}); + +describe("rule clash_mode type gate (fork-style arrays are rejected by vanilla sing-box)", () => { + it("errors on array clash_mode in route rules, dns rules, and logical sub-rules", () => { + const config = { + outbounds: [{ type: "direct", tag: "direct" }], + dns: { + servers: [{ type: "local", tag: "local" }], + rules: [{ clash_mode: ["direct"], server: "local" }], + }, + route: { + rules: [ + { clash_mode: ["direct"], outbound: "direct" }, + { type: "logical", mode: "and", rules: [{ clash_mode: ["global"] }, { network: "tcp" }], outbound: "direct" }, + ], + }, + } as unknown as SingBoxConfig; + const hits = validateConfig(config, "testing", "1.14").filter((d) => d.code === "rule-clash-mode-type"); + expect(hits.map((d) => d.path).sort()).toEqual([ + "/dns/rules/0/clash_mode", + "/route/rules/0/clash_mode", + "/route/rules/1/rules/0/clash_mode", + ]); + for (const hit of hits) expect(hit.level).toBe("error"); + }); + + it("silent on string clash_mode โ€” and on null, which all three binaries decode as a no-op", () => { + const config = { + outbounds: [{ type: "direct", tag: "direct" }], + route: { rules: [{ clash_mode: "direct", outbound: "direct" }, { clash_mode: null, outbound: "direct" }] }, + } as unknown as SingBoxConfig; + expect(validateConfig(config, "testing", "1.14").filter((d) => d.code === "rule-clash-mode-type")).toEqual([]); + }); +});