feat: 更改节点测速
This commit is contained in:
@@ -642,15 +642,7 @@ class KRSingBoxImp {
|
||||
"enable-fake-dns": false,
|
||||
"enable-dns-routing": true,
|
||||
"independent-dns-cache": true,
|
||||
"rules": [
|
||||
// ✅ 自定义域名直连规则 - 添加到 HiddifyOptions.Rules 中
|
||||
// 这样 Native 层的 config.BuildConfig() 会将其包含到最终配置
|
||||
// 注意:libcore 要求 domains 字段使用前缀格式,如 "domain:ip.sb" 表示 domain_suffix
|
||||
{
|
||||
"domains": "domain:api.hifast.biz", // domain: 前缀表示 domain_suffix 匹配
|
||||
"outbound": "bypass" // bypass = direct
|
||||
}
|
||||
],
|
||||
"rules": _kr_buildHiddifyRules(),
|
||||
"mux": {
|
||||
"enable": false,
|
||||
"padding": false,
|
||||
@@ -709,6 +701,57 @@ class KRSingBoxImp {
|
||||
return op;
|
||||
}
|
||||
|
||||
List<Map<String, dynamic>> _kr_buildHiddifyRules() {
|
||||
final rules = <Map<String, dynamic>>[];
|
||||
rules.add({
|
||||
"domains": "domain:api.hifast.biz",
|
||||
"outbound": "bypass"
|
||||
});
|
||||
|
||||
final nodeDomains = _kr_collectNodeDomains();
|
||||
for (final d in nodeDomains) {
|
||||
rules.add({
|
||||
"domains": "domain:$d",
|
||||
"outbound": "bypass"
|
||||
});
|
||||
}
|
||||
|
||||
KRLogUtil.kr_i('✅ 节点域名白名单数量: ${nodeDomains.length}', tag: 'SingBox');
|
||||
KRLogUtil.kr_i('✅ 节点域名白名单集合: ${jsonEncode(nodeDomains.toList())}', tag: 'SingBox');
|
||||
return rules;
|
||||
}
|
||||
|
||||
Set<String> _kr_collectNodeDomains() {
|
||||
final set = <String>{};
|
||||
|
||||
void addFromOutbound(Map<String, dynamic> o) {
|
||||
final server = o['server']?.toString();
|
||||
if (server != null && server.isNotEmpty && InternetAddress.tryParse(server) == null) {
|
||||
set.add(server.toLowerCase());
|
||||
}
|
||||
|
||||
final tls = o['tls'];
|
||||
if (tls is Map) {
|
||||
final sni = tls['server_name']?.toString();
|
||||
if (sni != null && sni.isNotEmpty && InternetAddress.tryParse(sni) == null) {
|
||||
set.add(sni.toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (final g in kr_outbounds) {
|
||||
addFromOutbound(g);
|
||||
}
|
||||
|
||||
for (final g in Kr_allOutbounds) {
|
||||
for (final it in g.outboundList) {
|
||||
addFromOutbound(it.config);
|
||||
}
|
||||
}
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
/// 动态构建 DNS 配置
|
||||
///
|
||||
/// - 真机:使用远程 DoH + 本地系统 DNS,final 指向远程
|
||||
|
||||
Reference in New Issue
Block a user