github nxtrace/NTrace-core v1.7.0

4 hours ago

What's Changed

  • 新增 NextTrace API v4 HTTP GeoIP provider:当数据源为 LeoMoeAPI 且配置了 NEXTTRACE_API_V4_TOKEN 时,GeoIP 查询会改用 GET https://api.nxtrace.org/v4/ipGeo?ip=<ip>,并通过 X-NextTrace-Token 请求头传 token
  • 新增 -x / --setup-api-v4-token:可在当前 shell 会话中粘贴并保存 NextTrace API v4 token,后续从该 shell 启动的 nexttrace 会自动加载
  • nexttrace -x 使用临时 token 文件,不写 shell profile、永久环境变量或 nt_config.yaml;同时提供 parent-PID session 文件和 same-user fallback 文件,兼容 go run 等 wrapper 启动方式
  • 没有可用 v4 token 时,LeoMoeAPI 默认仍走旧 v3 WebSocket / PoW 流程;配置 v4 token 后会跳过 v3 WebSocket 初始化
  • 优化 NextTrace API v4 GeoIP 性能:缓存并复用 HTTP client / keep-alive 连接,减少连续 GeoIP 查询时的重复 client 创建
  • v4 client cache 按 endpoint、token、timeout、当前 GeoDNS resolver 区分,并限制最多 32 个缓存项;淘汰旧项时会关闭 idle connections
  • 规范化 v4 endpoint 与 GeoDNS resolver:自动 trim endpoint,GeoDNS resolver 名称统一 trim + lowercase,避免缓存键和嵌套 resolver 作用域因大小写/空格不一致而分裂
  • 加固 v4 token 文件处理:使用临时文件原子写入,校验 token 目录 owner、权限、symlink 和文件类型,Unix 下要求同用户拥有且目录权限为 0700
  • 加固 v4 GeoIP 请求:补齐最小超时、总耗时限制、网络/超时/5xx 重试、响应体大小限制、错误响应解析和 token 脱敏
  • 解析 NextTrace API v4 quota headers:支持读取 X-NextTrace-Quota-RemainingX-NextTrace-Quota-Expires-AtX-NextTrace-Quota-CostX-NextTrace-Quota-Source,但不改变默认输出格式
  • 修复 MTR TCP / UDP GeoIP 补全:按 GeoIP / RDNS 配置决定是否标记 pending metadata 与启动异步补全,避免关闭 metadata 时留下无意义的 Geo 占位
  • 调整 MTR metadata 立即重试与并发
  • 新增 MTR TUI 历史视图:交互式 MTR 中按 d / D 可在经典指标表与 History 视图间切换,默认仍保持经典表格
  • 新增 History 图表模式切换:历史视图下按 g / G 可在 heatmap、bars、sparkline 三种图表间循环
  • History 视图会保留最近 3 分钟、按探测时间戳归窗的延迟与超时样本,并显示 HostLastAvgLossHistory
  • 优化 MTR history 布局、取样、配色与渲染性能,改善宽终端显示、未来时间戳、无色输出、超时样本和临时分配
  • 更新依赖:modelcontextprotocol/go-sdk 1.6.0、golang.org/x/net 0.54.0、tidwall/gjson 1.19.0 等

额外的:
这是集成 nexttrace api v4 的首个版本;未配置 NEXTTRACE_API_V4_TOKEN 时默认行为仍保持旧 v3 WebSocket / PoW。
历史视图只在 TTY 交互式 MTR 下启用;非 TTY / report / raw 输出保持原有行为。
History 列使用固定 100ms 延迟刻度;启用 --no-color 时使用 ASCII,并以 x 表示超时样本。

Full Changelog: v1.6.5...v1.7.0

Don't miss a new NTrace-core release

NewReleases is sending notifications on new releases.