跳到主要内容

故障排查

本指南帮助你快速定位和解决常见问题。

启动问题

无法启动 - 端口被占用

错误信息

Cannot start web server on port 5426

解决方法

# 查看端口占用
netstat -ano | findstr 5426

# 方法A:关闭占用程序
taskkill /PID 进程ID /F

# 方法B:换端口
.\rtkhub.exe -s -k conf\rtkhub.list -w 8080

配置文件错误

检查清单

  • 文件路径是否正确
  • 文件是否存在
  • 文件格式是否正确(UTF-8)
  • 语法是否有误

连接问题

Web 页面无法访问

检查清单

  • RTKHUB 是否运行
  • 地址:http://127.0.0.1:5426
  • 防火墙是否阻止
  • 是否使用 IE(不支持)

验证方法

# 检查进程
Get-Process rtkhub

# 检查端口
netstat -ano | findstr 5426

# 测试连接
curl http://127.0.0.1:5426

数据源无法连接

错误信息

stream connect error: Connection refused

测试连接

# TCP 测试
Test-NetConnection 192.168.1.100 -Port 2101

# Telnet 测试
telnet 192.168.1.100 2101

定位问题

无法获取固定解(FIX)

1. 基线过长

  • RTK 模式:< 20km(理想 < 10km)
  • PPP 模式:无距离限制

2. Age 过大

标准

  • 优秀:< 1s
  • 正常:< 5s
  • 可用:< 30s
  • 异常:> 30s

解决

  1. 检查数据源连接
  2. 检查网络延迟
  3. 尝试其他挂载点

3. 卫星数不足

标准

  • 最低:5 颗
  • 推荐:≥ 8 颗
  • 理想:≥ 12 颗

解决

1. 检查天线安装
2. 调整配置
pos1-navsys = 5 # GPS+BDS
pos1-elmask = 15
3. 查看卫星天空图

4. Ratio 不达标

标准

  • 固定:> 3.0
  • 浮点:1.0-3.0
  • 质量差:< 1.0

解决

  • 增加观测时长
  • 改善环境
  • 优化配置
  • 使用双频多系统

Age 持续很大

原因分析

Age 范围可能原因
10-30s网络延迟
30-60s数据源中断
> 60s数据源失败

排查

  1. 检查数据源连接
  2. 检查网络
  3. 验证 NTRIP 参数
  4. 尝试其他数据源

Ratio 很低

改善方法

  1. 延长观测时间(等待 1-5 分钟)
  2. 检查配置(双频、多系统)
  3. 改善环境(移除障碍物)
  4. 检查数据质量

:::danger 警告 降低 Ratio 阈值可能导致伪固定! :::

频繁失锁

原因

  1. 信号遮挡
  2. 多路径效应
  3. 电离层扰动
  4. 配置不当

解决

pos2-arlockcnt = 5 # 增加锁定计数
pos2-aroutcnt = 10 # 增加失锁计数
pos2-elmaskhold = 10 # 保持模式高度角

性能问题

内存占用过高

正常值

  • 单基线:启动 14MB,稳定 5.6MB
  • 100 基线:约 560MB

优化

  1. 关闭调试日志(-t 0
  2. 限制历史数据
  3. 定期重启

CPU 占用过高

正常值:单基线 < 5% CPU(1Hz)

检查

  1. 采样率是否过高
  2. 日志是否过多
  3. 基线数是否超限

磁盘占用过大

清理

# 清理旧日志(30天前)
$date = (Get-Date).AddDays(-30)
Get-ChildItem logs\*.trace | Where-Object { $_.LastWriteTime -lt $date } | Remove-Item

日志分析

查看日志

# 实时查看
Get-Content logs\rtkhub_20260610.trace -Wait -Tail 50

# 搜索错误
Select-String -Path logs\*.trace -Pattern "error|failed"

常见日志消息

消息含义处理
stream connect error连接失败检查地址/端口
no observation data无观测数据检查天线
age of differentialAge 过大检查差分数据
large residuals残差过大检查环境

收集诊断信息

# 创建诊断包
$date = Get-Date -Format "yyyyMMdd_HHmmss"
$diagPath = "diag_$date"
mkdir $diagPath

# 复制配置和日志
Copy-Item conf\ $diagPath\ -Recurse
Copy-Item logs\*.trace $diagPath\ -Force

# 导出进程信息
Get-Process rtkhub | Out-File $diagPath\process.txt

# 打包
Compress-Archive $diagPath diag_$date.zip

提交问题

访问 GitHub Issues,附上:

  1. 问题描述
  2. 环境信息
  3. 配置文件(删除敏感信息)
  4. 日志片段
  5. 诊断包

相关资源