From 6d4a4ff6a353047f009c5c24e3467d94482849ca Mon Sep 17 00:00:00 2001 From: Rust Date: Fri, 24 Oct 2025 20:40:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=A8=A1=E6=8B=9F=E5=99=A8?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E5=AD=98=E5=9C=A8=E6=97=A0=E6=B3=95=E8=81=94?= =?UTF-8?q?=E7=BD=91=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/app/common/app_config.dart | 18 +++++------ .../services/singbox_imp/kr_sing_box_imp.dart | 30 +++++++++++++++++-- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lib/app/common/app_config.dart b/lib/app/common/app_config.dart index b43c149..01b00d0 100755 --- a/lib/app/common/app_config.dart +++ b/lib/app/common/app_config.dart @@ -31,19 +31,17 @@ class KRDomain { // 备用域名获取地址列表 static List kr_backupDomainUrls = [ - "https://bear-1347601445.cos.ap-guangzhou.myqcloud.com/bear.txt", - "https://getbr.oss-cn-shanghai.aliyuncs.com/bear.txt", - "https://gitee.com/karelink/getbr/raw/master/README.en.md", - "https://configfortrans.oss-cn-guangzhou.aliyuncs.com/bear/bear.txt", + "https://ppp2.oss-cn-hongkong.aliyuncs.com/bear1.txt", + "https://xgp3.oss-ap-northeast-1.aliyuncs.com/bear1.txt", + "https://xpp4.oss-ap-northeast-2.aliyuncs.com/bear1.txt", + "https://xpp5.oss-ap-southeast-1.aliyuncs.com/bear1.txt", ]; // 本地备用域名列表(当服务器获取的域名都不可用时使用) static List kr_localBackupDomains = [ - "api.omntech.com", - "api6.omntech.com", - "api7.omntech.com", - "apicn.bearvpn.top", - "apibear.nsdsox.com", + "p1.maoayi.top", + "p2.maoayi.top", + "p3.maoayi.top", ]; static final _storage = KRSecureStorage(); @@ -1039,7 +1037,7 @@ class AppConfig { /// 请求域名地址调试模式 String get baseUrl { if (kDebugMode) { - return "http://154.12.35.103:8080"; + return "https://api.maodag.top"; } return "${KRProtocol.kr_https}://${KRDomain.kr_api}"; } diff --git a/lib/app/services/singbox_imp/kr_sing_box_imp.dart b/lib/app/services/singbox_imp/kr_sing_box_imp.dart index 759c025..502130c 100755 --- a/lib/app/services/singbox_imp/kr_sing_box_imp.dart +++ b/lib/app/services/singbox_imp/kr_sing_box_imp.dart @@ -462,13 +462,37 @@ class KRSingBoxImp { final configFile = File(_cutPath); if (await configFile.exists()) { final configContent = await configFile.readAsString(); - KRLogUtil.kr_i('📄 配置文件内容长度: ${configContent.length}', tag: 'SingBox'); - KRLogUtil.kr_i('📄 配置文件前500字符: ${configContent.substring(0, configContent.length > 500 ? 500 : configContent.length)}', tag: 'SingBox'); + KRLogUtil.kr_i('📄 基础配置文件内容长度: ${configContent.length}', tag: 'SingBox'); + KRLogUtil.kr_i('📄 基础配置文件前500字符: ${configContent.substring(0, configContent.length > 500 ? 500 : configContent.length)}', tag: 'SingBox'); } else { KRLogUtil.kr_w('⚠️ 配置文件不存在: $_cutPath', tag: 'SingBox'); } - await kr_singBox.start(_cutPath, kr_configName, false).map( + // ✅ 关键修复:生成完整的 sing-box 配置 + KRLogUtil.kr_i('🔧 开始生成完整配置...', tag: 'SingBox'); + + final fullConfigResult = await kr_singBox.generateFullConfigByPath(_cutPath).run(); + + final String fullConfigJson = fullConfigResult.fold( + (error) { + KRLogUtil.kr_e('❌ 生成完整配置失败: $error', tag: 'SingBox'); + throw Exception('生成完整配置失败: $error'); + }, + (config) { + KRLogUtil.kr_i('✅ 完整配置生成成功', tag: 'SingBox'); + KRLogUtil.kr_i('📄 完整配置长度: ${config.length}', tag: 'SingBox'); + KRLogUtil.kr_i('📄 完整配置前500字符: ${config.substring(0, config.length > 500 ? 500 : config.length)}', tag: 'SingBox'); + return config; + }, + ); + + // 保存完整配置到临时文件 + final fullConfigFile = File('${_cutPath}.full'); + await fullConfigFile.writeAsString(fullConfigJson); + KRLogUtil.kr_i('💾 完整配置已保存到: ${fullConfigFile.path}', tag: 'SingBox'); + + // 使用完整配置文件启动服务 + await kr_singBox.start(fullConfigFile.path, kr_configName, false).map( (r) { KRLogUtil.kr_i('✅ SingBox 启动成功', tag: 'SingBox'); },