Skip to content

Releases: nxtrace/NTrace-core

v1.7.0

29 May 14:05
4c4c07c

Choose a tag to compare

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

v1.6.5

12 May 03:28
21fdd74

Choose a tag to compare

What's Changed

  • 新增 Deploy MCP 模式:nexttrace --deploy --mcp 会在 deploy 网络服务中挂载 Streamable HTTP MCP endpoint /mcp,供 Agent / MCP Client 直接调用 NextTrace 能力
  • 新增 deploy token 鉴权:支持 --deploy-tokenNEXTTRACE_DEPLOY_TOKEN;外网监听且未手动设置 token 时会自动生成 token,WebUI / REST API / WebSocket / MCP 均受保护
  • 新增浏览器登录页 /auth/login:WebUI 可通过 HttpOnly Cookie 访问受保护页面;Agent / API / MCP 支持 Authorization: Bearer <token>X-NextTrace-Token
  • 新增共享 internal/service 层,为 Web / MCP 提供结构化能力入口,覆盖 traceroute、MTR report/raw、MTU、speed、Nali 标注、Geo lookup 与 Globalping
  • 新增 MCP tool 集合:nexttrace_capabilitiesnexttrace_traceroutenexttrace_mtr_reportnexttrace_mtr_rawnexttrace_mtu_tracenexttrace_speed_testnexttrace_annotate_ipsnexttrace_geo_lookupnexttrace_globalping_tracenexttrace_globalping_limitsnexttrace_globalping_get_measurement
  • 增强 Globalping MCP 支持:支持多 location / ASN / magic location 字符串发起全球 traceroute,返回 measurement id、probe 信息、ASN / network / tags、hops 与 raw output,不再只取第一个结果
  • 修复 Globalping MCP 默认端口与协议边界:TCP 默认 80,UDP 默认 33494,ICMP 保持无端口语义,避免 Agent 调用 ICMP 时生成无效 payload
  • 补充 NextTrace Agent Skill:新增 skills/nexttrace/,说明 MCP 启动、客户端注册、全工具能力、Globalping 用法、CLI fallback、平台限制、校验流程与输出模板
  • 强化 deploy / MCP 安全与稳定性:鉴权默认 fail-closed,禁止 URL query token,CORS 补齐 MCP DELETE 与鉴权 header,WebSocket / MCP / API 未授权访问均拒绝
  • 改进取消与 shutdown 行为:修复 WebSocket 重连、Fast Trace prompt、stdin reader、目标解析等路径在 context cancel / deadline 下的日志、阻塞与退出语义

额外的:
--mcp 只能与 --deploy 同用,不提供 stdio MCP 模式。
本地 loopback 监听默认免 token;外网监听建议显式设置 --deploy-tokenNEXTTRACE_DEPLOY_TOKEN,避免自动生成 token 出现在日志 / CI 输出中。
Globalping 是远端探针能力,不支持本地 source_address / source_device / dot_server / packet_size / tos / ttl_interval 等本机 trace 参数。
nexttrace-tiny / ntr 不注册 WebUI / MCP deploy 参数。

Full Changelog: v1.6.4...v1.6.5

v1.6.4

23 Apr 01:47
3ba3d0f

Choose a tag to compare

What's Changed

  • 新增独立 CDN 测速模式 --speed:支持 Apple(默认)与 Cloudflare 后端、候选节点选择、指定 --endpoint--source / --dev、TTY 输出、非交互模式和 --json 机器可读输出
  • 新增文本 IP 标注模式 --nali:可标注命令参数或管道输入中的 IPv4 / IPv6 字面量,并复用 NextTrace 现有 GeoIP provider、--data-provider--language--dot-server--dn42-4 / -6
  • MTR 的 Geo / RDNS metadata 改为异步补全:先显示基础 hop,再回填 Host / Geo 信息,减少 LeoMoeAPI、RDNS 慢查询对 TUI 启动和刷新的阻塞
  • 补强 LeoMoeAPI / WebSocket 链路:避免旧响应串入新请求、缺失 websocket 时解析异常、关闭竞态、失败 lookup 重试过密,以及 MTR API 信息缓存时间不刷新的问题
  • 明确 Windows --dev 语义:它只通过 source address 影响路由选择,不代表真实绑定出接口;独立 --mtu 也遵循该 source-address 语义,并额外使用网卡名查询本地 MTU
  • 修复 WebUI deploy 监听竞态:服务端会先完成 bind 再输出访问地址,--listen :0 会显示实际监听端口
  • 改进 Windows / source-device 相关容错:WinDivert runtime 错误保留原始信息,不支持真实网卡绑定的平台不再把 SourceDevice 传入 ICMP 发送路径
  • 更新依赖:x/netx/termpowclient v0.3.0,并将 release action 升级到 v3

额外的:
--speed--nali 仅在完整版 nexttrace 中提供,nexttrace-tinyntr 不注册这两个参数。
--speed --json 在 stdout 上只输出一个 JSON 文档;退出码 2 表示测速降级完成。
Windows 上 --dev 不保证真实出接口;如果需要严格控制出口,请以系统路由表和指定 source IP 的实际行为为准。

Full Changelog: v1.6.2...v1.6.4

v1.6.2

10 Apr 08:46

Choose a tag to compare

What's Changed

  • 进一步补强 --source / --dev 的跨平台行为:macOS / Linux 上会绑定到指定源网卡;Windows 上 --dev 继续只用于选择 source address,不再进入不受支持的绑定路径,相关错误提示也更明确
  • 补强 Darwin 抓包兼容性:TCP / UDP 的本机定向抓包不再强制请求 promisc,修复部分 macOS 环境下 pcap open failed ... Cannot set as promisc 导致 --tcp / UDP 探测不可用的问题
  • 改进 Windows 下的 WinDivert 运行时容错:缺少 runtime 时不再直接崩溃,共享打开路径增加 panic 防护,并同步调整 --init 的说明与行为
  • 收紧 source-device、sniff handle 与相关运行时校验,避免不支持的平台或无效句柄进入错误路径
  • 更新依赖:github.com/fatih/color 升级到 v1.19.0github.com/mattn/go-runewidth 升级到 v0.0.22

额外的:
curl -sL https://nxtrace.org/nt | bash 仍默认安装完整版 nexttrace
如需tinyntr,可分别使用:
curl -sL https://nxtrace.org/nt | bash -s -- --flavor tiny
curl -sL https://nxtrace.org/nt | bash -s -- --flavor ntr

在 macOS 和 Linux 上,--dev 表示绑定指定源网卡;在 Windows 上,--dev 只用于选择 source address,不保证真实出接口

Full Changelog: v1.6.1...v1.6.2

v1.6.1

21 Mar 02:59

Choose a tag to compare

What's Changed

  • 新增 MTR 模式,支持交互式 TUI、--report 报告模式、--raw 流式输出,以及 --wide--show-ips-y/--ipinfo 等显示控制
  • 重写 MTR 调度与统计逻辑,改为 Per-Hop 独立调度,支持每跳多并发探测,修复高丢包场景下的统计偏差、ghost row、超发残影和已到达目的地后高 TTL 脏数据问题
  • Web Console 的 MTR 路径同步升级,新增渲染节流与最终 TTL 截断逻辑;WebSocket 持续探测下的 MTR 消息也改为逐事件推送 mtr_raw
  • 新增独立的 --mtu 模式,用于路径 MTU 探测;该模式独立于普通 traceroute / MTR,引入单独的输出与 JSON schema,并支持 GeoIP、RDNS、--dot-server 等常用参数
  • 补强 --mtu 模式的输出与平台兼容性:TTY 下支持状态与 PMTU 高亮,重定向/管道输出退化为无 ANSI 的逐行流式文本,并补齐 Windows 下的 MTU 处理、WinDivert 超时/过滤与权限提示问题
  • 调整 --psize 语义为“探测包总大小”(包含 IP 与探测协议头),默认按协议和 IP 族自动取最小合法值;同时支持负值随机化每个 probe 的包大小,并新增 -Q/--tos 用于设置 IP TOS / traffic class
  • 常规 traceroute 新增输出文件能力,支持 --output <FILE>--output-default,便于实时落盘和脚本处理
  • Windows 下移除了对 Npcap 的依赖,ICMP/TCP/UDP 监听统一改为 WinDivert SNIFF 模式,并修复上下文取消后句柄未释放导致的卡住问题
  • --dot-server 现在不仅影响目标域名解析,也会影响 GeoIP / LeoMoe FastIP 等相关请求的域名解析,并在失败时回退系统 DNS
  • 异步化 Geo 查询并调整 traceroute 默认间隔,降低探测过程中的额外等待
  • 从本版本开始,NextTrace 在同一 release tag 下同时提供三种构建版本:nexttrace 完整版、nexttrace-tiny 精简版、ntr MTR 专用版
  • 进一步修复 DNS、trace、WebSocket、Globalping、tracemap、FastIP 等链路中的上下文取消、关闭竞态与缓存同步问题

额外的:
-t 现在用于 --mtr;如果你想要旧的表格输出,请改用 --table
--table 现在是一次探测完成后的最终汇总表,不再是旧的实时 table 刷新模式
nexttrace 包含常规 traceroute、独立 --mtu、MTR、Globalping 和 WebUI;nexttrace-tiny 保留常规 traceroute、独立 --mtu 与快速跟踪;ntr 默认进入 MTR TUI,不提供常规 traceroute / 独立 --mtu / Globalping / WebUI
Windows 下通常只需要 WinDivert,不再像 v1.5.0 那样依赖 Npcap
包管理器当前默认提供的是完整版 nexttrace

Full Changelog: v1.5.0...v1.6.1

NextTrace 在同一 release tag 下发布 三种构建版本,按需选用:

功能 nexttrace(完整版) nexttrace-tiny ntr
常规 traceroute
MTR TUI ✅(默认)
MTR 报告(-r
MTR 宽报告(-w
MTR 原始输出(--raw
Globalping(--from
WebUI(--deploy
快速跟踪(-F
默认运行模式 traceroute traceroute MTR TUI
二进制名 nexttrace nexttrace-tiny ntr

v1.5.0

28 Nov 03:45
82cebb7

Choose a tag to compare

What's Changed

额外的:
若需在 Windows 下使用 TCP/TCPv6 模式需要自行前置应用 NpcapWinDivert
其中的 WinDivert 可通过 --init 参数安装
在 Windows 版中新增参数 --icmp-mode 和新环境变量 NEXTTRACE_ICMPMODE,使用户可以手动控制所有模式中 ListenICMP 函数的选择,默认的自动决策依赖是否有 admin 权限,以及是否成功调用 Npcap ;若强制指定 PCAP 模式但实际无法使用,也会给出报错提示并自动回退到 Socket 模式

Full Changelog: v1.4.2...v1.5.0

v1.4.3-rc.1

12 Oct 13:58

Choose a tag to compare

v1.4.3-rc.1 Pre-release
Pre-release

What's Changed

额外的:
若需在 Windows 下使用 TCP/TCPv6 模式需要自行前置应用 NpcapWinDivert
其中的 WinDivert 可通过 --init 参数安装
在 Windows 版中新增参数 --icmp-mode 和新环境变量 NEXTTRACE_ICMPMODE,使用户可以手动控制所有模式中 ListenICMP 函数的选择,默认的自动决策依赖是否有 admin 权限,以及是否成功调用 Npcap ;若强制指定 PCAP 模式但实际无法使用,也会给出报错提示并自动回退到 Socket 模式

Full Changelog: v1.4.2...v1.4.3-rc.1

v1.4.2

26 Jul 12:57
cefed2a

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.4.0...v1.4.2

v1.4.1

26 Jul 09:21

Choose a tag to compare

v1.4.1 Pre-release
Pre-release

Full Changelog: v1.4.0...v1.4.1

v1.4.0

16 Apr 01:14

Choose a tag to compare

What's Changed

新功能

  • 完整支持 IPv6 UDP 模式追踪 in bcd430c

性能优化

  • TCP/UDP 模式支持固定源端口,改善负载均衡网络下的追踪效果
    可通过 NEXTTRACE_RANDOMPORT 环境变量切换回随机端口模式
    #296 #297 in 90b1a3c 4d8e7e3
  • 优化 WebSocket 连接的并发控制 in 9af629b
  • 改进 ICMPv6 头部处理机制 in d6de649
  • 解决 UDP 模式下的端口竞争问题 in dccc41b

依赖更新

  • 升级 Go 至 1.24 版本 in c095599

其他改进

  • 优化程序接口,提升二次开发便利性 #84 in 608a290
  • 修复 UDP 模式显示问题 in 314a4b3

Thanks

Full Changelog: v1.3.7...v1.4.0