2.8 KiB
Executable File
2.8 KiB
Executable File
SingBox URL 测试调试分析
🔍 问题分析
从日志分析发现:
1. 配置已正确更新 ✅
URLTestOptions:{ConnectionTestUrl:http://connectivitycheck.gstatic.com/generate_204 URLTestInterval:30}
- ✅ 测试 URL:
http://connectivitycheck.gstatic.com/generate_204 - ✅ 测试间隔: 30 秒
2. 核心问题:节点延迟始终为 0 ❌
└─ 节点[0]: tag=auto, type=ProxyType.urltest, delay=0
└─ 节点[0]: tag=香港, type=ProxyType.trojan, delay=0
问题原因:SingBox 的 URL 测试功能没有正常工作,导致所有节点的延迟值始终为 0。
3. 活动组更新过于频繁 ⚠️
日志显示活动组几乎每秒都在更新,这可能导致性能问题。
🛠️ 解决方案
1. 添加手动 URL 测试功能
- 新增
kr_manualUrlTest()方法用于调试 - 直接调用 SingBox 的 URL 测试 API
- 等待测试完成并检查结果
2. 增强调试信息
- 在
kr_urlTest()中添加详细的测试过程日志 - 测试前后对比活动组状态
- 显示连接状态和测试方法
3. 可能的问题原因
A. SingBox 配置问题
- URL 测试功能可能没有正确启用
- 测试 URL 可能无法访问
- 测试间隔设置可能有问题
B. API 调用问题
urlTest()方法可能没有正确调用- 原生库的 URL 测试功能可能有问题
- 测试结果可能没有正确返回
C. 网络问题
- 测试 URL 可能被防火墙阻止
- 网络连接可能有问题
- DNS 解析可能有问题
🧪 调试步骤
1. 手动触发 URL 测试
// 在应用中调用
await homeController.kr_manualUrlTest();
2. 检查 SingBox 日志
查看 SingBox 的日志文件,确认是否有 URL 测试相关的日志。
3. 验证测试 URL
curl -I "http://connectivitycheck.gstatic.com/generate_204"
4. 检查网络连接
ping connectivitycheck.gstatic.com
nslookup connectivitycheck.gstatic.com
📊 预期结果
如果 URL 测试正常工作,应该看到:
└─ 节点[0]: tag=auto, type=ProxyType.urltest, delay=150
└─ 节点[0]: tag=香港, type=ProxyType.trojan, delay=200
延迟值应该是实际的毫秒数,而不是 0 或 65535。
🔧 下一步调试
- 运行应用并手动触发 URL 测试
- 观察新的调试日志
- 检查 SingBox 原生日志
- 验证网络连接
- 如果问题持续,考虑使用直接连接测试作为备选方案
📝 关键文件
lib/app/modules/kr_home/controllers/kr_home_controller.dart- 添加了手动测试方法lib/app/services/singbox_imp/kr_sing_box_imp.dart- SingBox 配置和 URL 测试lib/singbox/service/ffi_singbox_service.dart- 原生库 URL 测试实现