LighthouseApp/SINGBOX_URL_TEST_DEBUG.md
speakeloudest 75d4c48e41
Some checks failed
Build Windows / build (push) Has been cancelled
feat: 源码提交
2025-10-19 23:30:54 -07:00

2.8 KiB
Executable File
Raw Permalink Blame History

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。

🔧 下一步调试

  1. 运行应用并手动触发 URL 测试
  2. 观察新的调试日志
  3. 检查 SingBox 原生日志
  4. 验证网络连接
  5. 如果问题持续,考虑使用直接连接测试作为备选方案

📝 关键文件

  • 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 测试实现