
<a href="https://dmit.io">
<img src="https://assets.nxtrace.org/dmit.svg" width="170.7" height="62.9">
</a>
<a href="https://misaka.io" >
<img src="https://assets.nxtrace.org/misaka.svg" width="170.7" height="62.9">
</a>
<a href="https://portal.saltyfish.io" >
<img src="https://assets.nxtrace.org/snapstack.svg" width="170.7" height="62.9">
</a>
我们非常感谢 DMIT、 Misaka 和 SnapStack 提供了支持本项目所需的网络基础设施。
Document Language: English | 简体中文
⚠️ 请注意:我们欢迎来自社区的PR提交,但是请将您的PR提交至 NTrace-dev 仓库,而不是 NTrace-core 仓库。
关于NTrace-dev和NTrace-core两个仓库的说明:
二者将大体上保持一致。所有的开发工作均在NTrace-dev仓库中进行。NTrace-dev仓库首先发布新版本,在稳定运行一段时间后(时长不定),我们会把版本同步至NTrace-core。这意味着NTrace-dev仓库充当了一个“测试版”的角色。
请注意,版本同步也存在例外。如果NTrace-dev的某个版本出现了严重的bug,NTrace-core会跳过这一有缺陷的版本,直接同步到下一个修复了该问题的版本。
使用 NextTrace 之前,我们建议您先阅读 #IP 数据以及精准度说明,在了解您自己的对数据精准度需求以后再进行抉择。
推荐:通过官方 nexttrace-debs APT 源安装
amd64、i386、arm64、armel、armhf、loong64、mipsel、mips64el、ppc64el、riscv64、s390xshell
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL -o /tmp/nexttrace-archive-keyring.gpg https://github.com/nxtrace/nexttrace-debs/releases/latest/download/nexttrace-archive-keyring.gpg
sudo install -m 0644 /tmp/nexttrace-archive-keyring.gpg /etc/apt/keyrings/nexttrace.gpg
rm -f /tmp/nexttrace-archive-keyring.gpg
printf '%s\n' 'Types: deb' 'URIs: https://github.com/nxtrace/nexttrace-debs/releases/latest/download/' 'Suites: ./' 'Signed-By: /etc/apt/keyrings/nexttrace.gpg' | sudo tee /etc/apt/sources.list.d/nexttrace.sources >/dev/null
sudo apt update
sudo apt install nexttraceshell
sudo apt install nexttrace-tiny
sudo apt install ntrnexttrace、nexttrace-tiny、ntrLinux / macOS / BSD
shell
curl -sL https://nxtrace.org/nt | bashshell
curl -sL https://nxtrace.org/nt | bash -s -- --flavor tinyshell
curl -sL https://nxtrace.org/nt | bash -s -- --flavor ntr安装后的命令名:Full nexttrace,Tiny nexttrace-tiny,NTR ntr
Arch Linux AUR 安装命令
shell
yay -S nexttrace-binshell
yay -S nexttraceLinuxbrew 安装命令
同 macOS Homebrew 安装方法;homebrew-core formula 提供 Full flavor(nexttrace),nxtrace/nexttrace tap 提供三种 flavor。
deepin 安装命令
shell
apt install nexttrace
x-cmd 安装命令
shell
x env use nexttrace
Termux 安装命令
shell
pkg install root-repo
pkg install nexttrace
ImmortalWrt 安装命令
shell
opkg install nexttrace
macOS
macOS Homebrew 安装命令
shell
brew install nexttracenxtrace/nexttrace tap 版(按 NTrace-core 最新 release 定期同步)
shell
brew tap nxtrace/nexttrace
brew install nxtrace/nexttrace/nexttrace
brew install nxtrace/nexttrace/nexttrace-tiny
brew install nxtrace/nexttrace/ntrWindows
Windows WinGet 安装命令
powershell
winget install nexttraceWindows Scoop 安装命令
scoop-extras 版
powershell
scoop bucket add extras && scoop install extras/nexttrace
scoop-extra 由 soenggam 维护
请注意:
nexttrace-debs APT 源由 nxtrace 和 wcbing 维护。对于以上方法没有涵盖的用户,请直接前往 Release 下载编译好的二进制可执行文件。
- Release里面为很多系统以及不同架构提供了编译好的二进制可执行文件,如果没有可以自行编译。
- 一些本项目的必要依赖在Windows上Golang底层实现不完全,所以目前NextTrace在Windows平台出于实验性支持阶段。
从本版本开始,NextTrace 在同一 release tag 下发布 三种构建版本,按需选用:
| 功能 | nexttrace(完整版) |
nexttrace-tiny |
ntr |
|---|---|---|---|
| 常规 traceroute | ✅ | ✅ | — |
独立 MTU(--mtu) |
✅ | ✅ | — |
CDN 测速(--speed) |
✅ | — | — |
IP 文本标注(--nali) |
✅ | — | — |
| MTR TUI | ✅ | — | ✅(默认) |
MTR 报告(-r) |
✅ | — | ✅ |
MTR 宽报告(-w) |
✅ | — | ✅ |
MTR 原始输出(--raw) |
✅ | — | ✅ |
Globalping(--from) |
✅ | — | — |
WebUI(--deploy)/ MCP(--deploy --mcp) |
✅ | — | — |
快速跟踪(-F) |
✅ | ✅ | — |
| 默认运行模式 | traceroute | traceroute | MTR TUI |
| 二进制名 | nexttrace |
nexttrace-tiny |
ntr |
注意:
APT (nexttrace-debs)与Homebrew tap (nxtrace/nexttrace)目前提供 Full(nexttrace)、Tiny(nexttrace-tiny)和 NTR(ntr)三种包;homebrew-core、AUR、Scoop 等其它包管理器目前仍仅提供 完整版(nexttrace)。
nexttrace — 完整版。包含 traceroute、独立 MTU、CDN 测速、IP 文本标注、MTR、Globalping、Fast Trace、WebUI(--deploy)与 MCP(--deploy --mcp)。nexttrace-tiny — 精简版。保留常规 traceroute、独立 MTU 和 Fast Trace;不含 CDN 测速 / IP 文本标注 / MTR / Globalping / WebUI / MCP。适合嵌入式或极简环境。ntr — MTR 专用版。默认启动 MTR TUI。不含常规 traceroute、独立 --mtu、CDN 测速、IP 文本标注、Globalping、Fast Trace、WebUI 或 MCP。需要 Go 1.22+ 环境:
# 完整版(所有功能)
go build -trimpath -o dist/nexttrace -ldflags "-w -s" .
# 精简版(无 MTR、无 Globalping、无 WebUI)
go build -tags flavor_tiny -trimpath -o dist/nexttrace-tiny -ldflags "-w -s" .
# MTR 专用版
go build -tags flavor_ntr -trimpath -o dist/ntr -ldflags "-w -s" .
交叉编译示例:
# Linux arm64 精简版
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \
go build -tags flavor_tiny -trimpath -o dist/nexttrace-tiny_linux_arm64 -ldflags "-w -s" .
tiny 和 ntr 版本通过 编译期 build tags 裁剪模块——不是运行时开关。可通过 go version -m <binary> 验证 nexttrace-tiny 和 ntr 中不包含 gin 与 globalping-cli。
.cross_compile.sh 脚本支持按版本构建:
./.cross_compile.sh all # 构建全部三个版本(所有平台)
./.cross_compile.sh full # 仅构建 nexttrace(完整版)
./.cross_compile.sh tiny # 仅构建 nexttrace-tiny
./.cross_compile.sh ntr # 仅构建 ntr
Release 二进制文件命名格式:
{二进制名}_{操作系统}_{架构}[v{arm版本}][.exe][_softfloat]
示例:
nexttrace_linux_amd64、nexttrace-tiny_linux_amd64、ntr_linux_amd64nexttrace_darwin_universal、nexttrace-tiny_darwin_universal、ntr_darwin_universalnexttrace_windows_amd64.exe、ntr_windows_amd64.exeNextTrace 默认使用ICMP协议发起TraceRoute请求,该协议同时支持IPv4和IPv6
# IPv4 ICMP Trace
nexttrace 1.0.0.1
# URL
nexttrace http://example.com:8080/index.html?q=1
# 表格输出(报告模式):运行一次探测后打印最终汇总表格
nexttrace --table 1.0.0.1
# 机器可读输出:stdout 只包含一个 JSON 文档
nexttrace --raw 1.0.0.1
nexttrace --json 1.0.0.1
# 将实时 traceroute 输出写入自定义文件
nexttrace --output ./trace.log 1.0.0.1
# 将实时 traceroute 输出写入默认日志文件
nexttrace --output-default 1.0.0.1
# 只进行IPv4/IPv6解析,且当多个IP时自动选择第一个IP
nexttrace --ipv4 g.co
nexttrace --ipv6 g.co
# IPv6 ICMP Trace
nexttrace 2606:4700:4700::1111
# 普通 traceroute 模式下设置 TTL 分组间隔(默认 300ms)
nexttrace -i 300 1.1.1.1
# 禁用路径可视化 使用 --map / -M 参数
nexttrace koreacentral.blob.core.windows.net
# MapTrace URL: https://api.nxtrace.org/tracemap/html/c14e439e-3250-5310-8965-42a1e3545266.html
# 禁用MPLS显示 使用 --disable-mpls / -e 参数 或 NEXTTRACE_DISABLEMPLS 环境变量
nexttrace --disable-mpls example.com
export NEXTTRACE_DISABLEMPLS=1
PS: 路由可视化的绘制模块为独立模块,具体代码可在 nxtrace/traceMap 查看
路由可视化功能因为需要每个 Hop 的地理位置坐标,而第三方 API 通常不提供此类信息,所以此功能目前只支持搭配 LeoMoeAPI 使用。
Windows 用户必须完成的配置步骤ICMP/ICMPv6。
powershell
netsh advfirewall firewall add rule name="All ICMP v4" dir=in action=allow protocol=icmpv4:any,any
netsh advfirewall firewall add rule name="All ICMP v6" dir=in action=allow protocol=icmpv6:any,anyWinDivert。1=Socket 与 2=WinDivert(0=Auto)。使用 Socket 模式时,需防火墙配置允许ICMP/ICMPv6。Windows 上,ICMPv6 未传 --tos 或显式 --tos 0 时继续走原生 Socket 发送路径;只有非零 ICMPv6 --tos 才额外依赖 WinDivert 发送能力,并要求管理员权限。WinDivert 可使用 --init 参数自动配置环境;该命令会将运行时解压到可执行文件目录。NextTrace 现已经支持快速测试,有一次性测试回程路由需求的朋友可以使用# 北上广(电信+联通+移动+教育网)IPv4 / IPv6 ICMP 快速测试
nexttrace --fast-trace
# 也可以使用 TCP SYN 而非 ICMP 进行测试
nexttrace --fast-trace --tcp
# 也可以通过自定义的IP/DOMAIN列表文件进行快速测试
nexttrace --file /path/to/your/iplist.txt
# 自定义的IP/DOMAIN列表文件格式
## 一行一个IP/DOMAIN + 空格 + 描述信息(可选)
## 例如:
## 106.37.67.1 北京电信
## 240e:928:101:31a::1 北京电信
## bj.10086.cn 北京移动
## 2409:8080:0:1::1
## 223.5.5.5
NextTrace 已支持指定网卡进行路由跟踪在 macOS 和 Linux 上,--dev 会绑定到指定源网卡。
在 Windows 上,--dev 会从指定网卡解析 source IP,并用该 source address 发起 ICMP/TCP/UDP 探测;它不会把 WinDivert 或 socket 绑定到真实出接口,实际出口仍可能由 Windows 路由表决定。独立 --mtu 模式也遵循相同的 source-address 语义,并额外使用网卡名查询本地 MTU。
# 请注意 Lite 版本此参数不能和快速测试联用,如有需要请使用 enhanced 版本
# 使用 eth0 网卡
nexttrace --dev eth0 2606:4700:4700::1111
# 使用 eth0 网卡IP
# 网卡 IP 可以使用 ip a 或者 ifconfig 获取
# 使用网卡IP进行路由跟踪时需要注意跟踪的IP类型应该和网卡IP类型一致(如都为 IPv4)
nexttrace --source 204.98.134.56 9.9.9.9
NextTrace 也可以使用TCP和UDP协议发起Traceroute请求# TCP SYN Trace
nexttrace --tcp www.bing.com
# 可以自行指定目标端口[此处为443],默认80端口
nexttrace --tcp --port 443 2001:4860:4860::8888
# UDP Trace
nexttrace --udp 1.0.0.1
# 可以自行指定目标端口[此处为5353],默认33494端口
nexttrace --udp --port 5353 1.0.0.1
# TCP/UDP Trace 可以自行指定源端口,默认使用随机一个固定的端口(如需每次发包随机使用不同的源端口,请设置`ENV` `NEXTTRACE_RANDOMPORT`)
nexttrace --tcp --source-port 14514 www.bing.com
NextTrace 也支持独立的路径 MTU 探测模式# 类 tracepath 的 UDP PMTU 探测,运行中实时刷行
nexttrace --mtu 1.1.1.1
# mtu 模式同样复用常规的 GeoIP / RDNS 参数
nexttrace --mtu --data-provider IPInfo --language en 1.1.1.1
# JSON 输出沿用独立 mtu schema,并包含 hop.geo
nexttrace --mtu --json 1.1.1.1
--mtu 是独立的 UDP-only 模式,不复用普通 traceroute 引擎。--mtu --json 在 stdout 上只输出独立的 MTU JSON 文档。--data-provider、--language、--no-rdns、--always-rdns、--dot-server 都对该模式生效。NextTrace 也支持独立的 CDN 测速模式# 默认使用 Apple CDN 后端
nexttrace --speed
# 改用 Cloudflare 后端
nexttrace --speed --speed-provider cloudflare
# 查看测速模式专属帮助
nexttrace --speed --help
# 机器可读输出
nexttrace --speed --json --non-interactive --no-metadata
# 指定测速节点 IP,或绑定 source address / 网卡
nexttrace --speed --endpoint 1.2.3.4
nexttrace --speed --source 192.0.2.10
nexttrace --speed --dev eth0
--speed 仅在完整版 nexttrace 中提供,nexttrace-tiny 与 ntr 不注册该参数。nexttrace --help 只展示顶层 --speed 入口;测速模式的详细参数放在 nexttrace --speed --help。apple(默认)和 cloudflare。--json、--language、--no-color、--dot-server、--timeout、--source、--dev。--speed-provider、--max、--threads、--latency-count、--non-interactive、--endpoint、--no-metadata。--json 时,stdout 只输出一个 JSON 文档。0 表示成功,2 表示降级完成,1 表示失败,130 表示被中断。NextTrace 可以对文本流中的 IP 字面量做归属标注# 标注单行文本
nexttrace --nali 1.1.1.1
# 标注管道输出
dig example.com +short | nexttrace --nali --data-provider IPInfo --language en
--nali 仅在完整版 nexttrace 中提供,nexttrace-tiny 与 ntr 不注册该参数。--data-provider、--language、--dot-server、--timeout、--dn42、-4、-6。NextTrace也同样支持一些进阶功能,如 TTL 控制、并发数控制、模式切换等```bash
nexttrace --queries 2 www.hkix.net
nexttrace --parallel-requests 1 www.hkix.net
nexttrace --first 5 --max-hops 10 www.decix.net
export NEXTTRACE_ENABLEHIDDENDSTIP=1
nexttrace --no-rdns www.bbix.net
nexttrace --psize 1024 example.com
nexttrace --psize -1500 exam
$ claude mcp add NTrace-core \
-- python -m otcore.mcp_server <graph>