99 lines
2.8 KiB
Markdown
Executable File
99 lines
2.8 KiB
Markdown
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 测试**
|
||
```dart
|
||
// 在应用中调用
|
||
await homeController.kr_manualUrlTest();
|
||
```
|
||
|
||
### 2. **检查 SingBox 日志**
|
||
查看 SingBox 的日志文件,确认是否有 URL 测试相关的日志。
|
||
|
||
### 3. **验证测试 URL**
|
||
```bash
|
||
curl -I "http://connectivitycheck.gstatic.com/generate_204"
|
||
```
|
||
|
||
### 4. **检查网络连接**
|
||
```bash
|
||
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 测试实现
|