[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10232":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":15,"starSnapshotCount":15,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},10232,"NTrace-core","nxtrace\u002FNTrace-core","nxtrace","NextTrace, an open source visual route tracking CLI tool","https:\u002F\u002Fwww.nxtrace.org",null,"Go",7910,474,27,0,4,20,98,19,91.83,"GNU General Public License v3.0",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36],"api","as-path","asn-lookup","geoip","geolocation","ip-lookup","network-analysis","next-trace","nexttrace","traceroute","utility","2026-06-12 04:00:49","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Flogo.png\" height=\"200px\" alt=\"NextTrace Logo\"\u002F>\n\n\u003C\u002Fdiv>\n\n\u003Ch1 align=\"center\">\n  \u003Cbr>NextTrace\u003Cbr>\n\u003C\u002Fh1>\n\n\u003Ch4 align=\"center\">An open source visual routing tool that pursues light weight, developed using Golang.\u003C\u002Fh4>\n\n---\n\n\u003Ch6 align=\"center\">HomePage: www.nxtrace.org\u003C\u002Fh6>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNTrace-dev\u002Factions\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fnxtrace\u002FNTrace-dev\u002Fbuild.yml?branch=main&style=flat-square\" alt=\"Github Actions\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fnxtrace\u002FNTrace-dev\">\n    \u003Cimg src=\"https:\u002F\u002Fgoreportcard.com\u002Fbadge\u002Fgithub.com\u002Fnxtrace\u002FNTrace-dev?style=flat-square\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNTrace-dev\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fnxtrace\u002FNTrace-dev\u002Fall.svg?style=flat-square\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## IAAS Sponsor\n\n\u003Cdiv style=\"text-align: center;\">\n    \u003Ca href=\"https:\u002F\u002Fdmit.io\">\n        \u003Cimg src=\"https:\u002F\u002Fassets.nxtrace.org\u002Fdmit.svg\" width=\"170.7\" height=\"62.9\">\n    \u003C\u002Fa>\n    &nbsp;&nbsp;&nbsp;&nbsp;\n    \u003Ca href=\"https:\u002F\u002Fmisaka.io\" >\n        \u003Cimg src=\"https:\u002F\u002Fassets.nxtrace.org\u002Fmisaka.svg\" width=\"170.7\" height=\"62.9\">\n    \u003C\u002Fa>\n    &nbsp;&nbsp;&nbsp;&nbsp;\n    \u003Ca href=\"https:\u002F\u002Fportal.saltyfish.io\" >\n        \u003Cimg src=\"https:\u002F\u002Fassets.nxtrace.org\u002Fsnapstack.svg\" width=\"170.7\" height=\"62.9\">\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\nWe are extremely grateful to [DMIT](https:\u002F\u002Fdmit.io), [Misaka](https:\u002F\u002Fmisaka.io) and [SnapStack](https:\u002F\u002Fportal.saltyfish.io) for providing the network infrastructure that powers this project.\n\n## How To Use\n\nDocument Language: English | [简体中文](README_zh_CN.md)\n\n⚠️ Please note: We welcome PR submissions from the community, but please submit your PRs to the [NTrace-dev](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNTrace-dev) repository instead of [NTrace-core](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNTrace-core) repository.\u003Cbr>\nRegarding the NTrace-dev and NTrace-core repositories:\u003Cbr>\nBoth will largely remain consistent with each other. All development work is done within the NTrace-dev repository. The NTrace-dev repository releases new versions first. After running stably for an undetermined period, we will synchronize that version to NTrace-core. This means that the NTrace-dev repository serves as a \"beta\" or \"testing\" version.\u003Cbr>\nPlease note, there are exceptions to this synchronization. If a version of NTrace-dev encounters a serious bug, NTrace-core will skip that flawed version and synchronize directly to the next version that resolves the issue.\n\n### Automated Install\n\n- Debian \u002F Ubuntu\n  - Recommended: install from the official `nexttrace-debs` APT repository\n    - Supports: `amd64`, `i386`, `arm64`, `armel`, `armhf`, `loong64`, `mipsel`, `mips64el`, `ppc64el`, `riscv64`, `s390x`\n    - Add the repository and install the default package:\n      ```shell\n      sudo install -d -m 0755 \u002Fetc\u002Fapt\u002Fkeyrings\n      curl -fsSL -o \u002Ftmp\u002Fnexttrace-archive-keyring.gpg https:\u002F\u002Fgithub.com\u002Fnxtrace\u002Fnexttrace-debs\u002Freleases\u002Flatest\u002Fdownload\u002Fnexttrace-archive-keyring.gpg\n      sudo install -m 0644 \u002Ftmp\u002Fnexttrace-archive-keyring.gpg \u002Fetc\u002Fapt\u002Fkeyrings\u002Fnexttrace.gpg\n      rm -f \u002Ftmp\u002Fnexttrace-archive-keyring.gpg\n      printf '%s\\n' 'Types: deb' 'URIs: https:\u002F\u002Fgithub.com\u002Fnxtrace\u002Fnexttrace-debs\u002Freleases\u002Flatest\u002Fdownload\u002F' 'Suites: .\u002F' 'Signed-By: \u002Fetc\u002Fapt\u002Fkeyrings\u002Fnexttrace.gpg' | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fnexttrace.sources >\u002Fdev\u002Fnull\n      sudo apt update\n      sudo apt install nexttrace\n      ```\n    - Optionally install additional flavors:\n      ```shell\n      sudo apt install nexttrace-tiny\n      sudo apt install ntr\n      ```\n    - Packages can be installed side by side. Commands: `nexttrace`, `nexttrace-tiny`, `ntr`\n\n- Linux \u002F macOS \u002F BSD\n  - One-click installation script (Full, default)\n\n    ```shell\n    curl -sL https:\u002F\u002Fnxtrace.org\u002Fnt | bash\n    ```\n\n  - One-click installation script (Tiny)\n\n    ```shell\n    curl -sL https:\u002F\u002Fnxtrace.org\u002Fnt | bash -s -- --flavor tiny\n    ```\n\n  - One-click installation script (NTR)\n\n    ```shell\n    curl -sL https:\u002F\u002Fnxtrace.org\u002Fnt | bash -s -- --flavor ntr\n    ```\n\n  - Installed command names: Full `nexttrace`, Tiny `nexttrace-tiny`, NTR `ntr`\n\n  - Arch Linux AUR installation command\n    - Directly download bin package (only supports amd64)\n      ```shell\n      yay -S nexttrace-bin\n      ```\n    - Build from source (only supports amd64)\n      ```shell\n      yay -S nexttrace\n      ```\n    - The AUR builds are maintained by ouuan, huyz\n\n  - Linuxbrew's installation command\n\n    Same as the macOS Homebrew's installation method (homebrew-core version only supports amd64)\n\n  - deepin installation command\n    ```shell\n    apt install nexttrace\n    ```\n  - [x-cmd](https:\u002F\u002Fwww.x-cmd.com\u002Fpkg\u002Fnexttrace) installation command\n\n    ```shell\n    x env use nexttrace\n    ```\n\n  - Termux installation command\n    ```shell\n    pkg install root-repo\n    pkg install nexttrace\n    ```\n  - ImmortalWrt installation command\n    ```shell\n    opkg install nexttrace\n    ```\n\n- macOS\n  - macOS Homebrew's installation command\n    - Homebrew-core version\n      ```shell\n      brew install nexttrace\n      ```\n    - This repository's ACTIONS automatically built version (updates faster)\n      ```shell\n      brew tap nxtrace\u002Fnexttrace && brew install nxtrace\u002Fnexttrace\u002Fnexttrace\n      ```\n    - The homebrew-core build is maintained by chenrui333, please note that this version's updates may lag behind the repository Action automatically version\n\n- Windows\n  - Windows WinGet installation command\n    - WinGet version\n      ```powershell\n      winget install nexttrace\n      ```\n    - WinGet build maintained by Dragon1573\n\n  - Windows Scoop installation command\n    - Scoop-extras version\n      ```powershell\n      scoop bucket add extras && scoop install extras\u002Fnexttrace\n      ```\n    - Scoop-extra is maintained by soenggam\n\nPlease note:\n\n- The `nexttrace-debs` APT repository is maintained by nxtrace and wcbing.\n- Other package sources above are maintained by open-source enthusiasts. Availability and timely updates are not guaranteed. If you encounter problems, please contact the repository maintainer to solve them, or use the binary packages provided by the official build of this project.\n\n### Manual Install\n\n- Download the precompiled executable\n\n  For users not covered by the above methods, please go directly to [Release](https:\u002F\u002Fwww.nxtrace.org\u002Fdownloads) to download the compiled binary executable.\n  - `Release` provides compiled binary executables for many systems and different architectures. If none are available, you can compile it yourself.\n  - Some essential dependencies of this project are not fully implemented on `Windows` by `Golang`, so currently, `NextTrace` is in an experimental support phase on the `Windows` platform.\n\n### Build Variants\n\nStarting from this release, NextTrace is published in **three flavors** under the same tag. Choose the one that best fits your use case:\n\n| Feature               | `nexttrace` (Full) | `nexttrace-tiny` |    `ntr`     |\n| --------------------- | :----------------: | :--------------: | :----------: |\n| Normal traceroute     |         ✅         |        ✅        |      —       |\n| Standalone MTU (`--mtu`) |      ✅         |        ✅        |      —       |\n| CDN Speed (`--speed`) |         ✅         |        —         |      —       |\n| IP annotation (`--nali`) |       ✅       |        —         |      —       |\n| MTR TUI               |         ✅         |        —         | ✅ (default) |\n| MTR report (`-r`)     |         ✅         |        —         |      ✅      |\n| MTR wide (`-w`)       |         ✅         |        —         |      ✅      |\n| MTR raw (`--raw`)     |         ✅         |        —         |      ✅      |\n| Globalping (`--from`) |         ✅         |        —         |      —       |\n| WebUI (`--deploy`) \u002F MCP (`--deploy --mcp`) |        ✅         |        —         |      —       |\n| Fast Trace (`-F`)     |         ✅         |        ✅        |      —       |\n| Default mode          |     traceroute     |    traceroute    |   MTR TUI    |\n| Binary name           |    `nexttrace`     | `nexttrace-tiny` |    `ntr`     |\n\n> **Note:** `APT (nexttrace-debs)` provides all three flavors: **Full** (`nexttrace`), **Tiny** (`nexttrace-tiny`), and **NTR** (`ntr`). Other package managers (Homebrew, AUR, Scoop, etc.) currently install the **Full** (`nexttrace`) version only.\n\n### Feature Matrix\n\n- **`nexttrace`** — Full-featured build. Includes traceroute, standalone MTU, CDN speed test, IP annotation, MTR, Globalping, Fast Trace, WebUI, and deploy MCP.\n- **`nexttrace-tiny`** — Lightweight build. Keeps normal traceroute, standalone MTU, and Fast Trace. No CDN speed test \u002F IP annotation \u002F MTR \u002F Globalping \u002F WebUI \u002F MCP. Suitable for embedded or minimal environments.\n- **`ntr`** — MTR-focused build. Runs MTR TUI by default. No normal traceroute mode, standalone `--mtu`, CDN speed test, IP annotation, Globalping, Fast Trace, WebUI, or MCP.\n\n### Manual Build\n\nBuild from source with Go 1.22+ installed:\n\n```bash\n# Full (all features)\ngo build -trimpath -o dist\u002Fnexttrace -ldflags \"-w -s\" .\n\n# Tiny (no MTR, no Globalping, no WebUI)\ngo build -tags flavor_tiny -trimpath -o dist\u002Fnexttrace-tiny -ldflags \"-w -s\" .\n\n# NTR (MTR-only)\ngo build -tags flavor_ntr -trimpath -o dist\u002Fntr -ldflags \"-w -s\" .\n```\n\nCross-compile example:\n\n```bash\n# Linux arm64, Tiny flavor\nGOOS=linux GOARCH=arm64 CGO_ENABLED=0 \\\n  go build -tags flavor_tiny -trimpath -o dist\u002Fnexttrace-tiny_linux_arm64 -ldflags \"-w -s\" .\n```\n\nThe `tiny` and `ntr` flavors use **compile-time build tags** to exclude modules — this is not a runtime switch. You can verify with `go version -m \u003Cbinary>` that `gin` and `globalping-cli` are absent from `nexttrace-tiny` and `ntr`.\n\nThe `.cross_compile.sh` script supports building flavors:\n\n```bash\n.\u002F.cross_compile.sh all     # Build all three flavors for all platforms\n.\u002F.cross_compile.sh full    # Build only nexttrace (Full)\n.\u002F.cross_compile.sh tiny    # Build only nexttrace-tiny\n.\u002F.cross_compile.sh ntr     # Build only ntr\n```\n\n### Release Assets Naming\n\nRelease binaries follow this naming convention:\n\n```\n{binary}_{os}_{arch}[v{arm}][.exe][_softfloat]\n```\n\nExamples:\n\n- `nexttrace_linux_amd64`, `nexttrace-tiny_linux_amd64`, `ntr_linux_amd64`\n- `nexttrace_darwin_universal`, `nexttrace-tiny_darwin_universal`, `ntr_darwin_universal`\n- `nexttrace_windows_amd64.exe`, `ntr_windows_amd64.exe`\n\n### Get Started\n\n`NextTrace` uses the `ICMP` protocol to perform TraceRoute requests by default, which supports both `IPv4` and `IPv6`\n\n```bash\n# IPv4 ICMP Trace\nnexttrace 1.0.0.1\n# URL\nnexttrace http:\u002F\u002Fexample.com:8080\u002Findex.html?q=1\n\n# Table output (report mode): runs trace once and prints a final summary table\nnexttrace --table 1.0.0.1\n\n# Machine-readable output: stdout is a single JSON document\nnexttrace --raw 1.0.0.1\nnexttrace --json 1.0.0.1\n\n# Realtime trace output to a custom file\nnexttrace --output .\u002Ftrace.log 1.0.0.1\n\n# Realtime trace output to the default log file\nnexttrace --output-default 1.0.0.1\n\n# IPv4\u002FIPv6 Resolve Only, and automatically select the first IP when there are multiple IPs\nnexttrace --ipv4 g.co\nnexttrace --ipv6 g.co\n\n# IPv6 ICMP Trace\nnexttrace 2606:4700:4700::1111\n\n# Developer mode: set the ENV variable NEXTTRACE_DEVMODE=1 to make fatal errors panic with a stack trace\nexport NEXTTRACE_DEVMODE=1\n\n# Set TTL-group interval in normal traceroute mode (default: 300ms)\nnexttrace -i 300 1.1.1.1\n\n# Disable Path Visualization With the -M parameter\nnexttrace koreacentral.blob.core.windows.net\n# MapTrace URL: https:\u002F\u002Fapi.nxtrace.org\u002Ftracemap\u002Fhtml\u002Fc14e439e-3250-5310-8965-42a1e3545266.html\n\n# Disable MPLS display using the --disable-mpls \u002F -e parameter or the NEXTTRACE_DISABLEMPLS environment variable\nnexttrace --disable-mpls example.com\nexport NEXTTRACE_DISABLEMPLS=1\n```\n\nPS: The route visualization module is an independent component, You can find its source code at [nxtrace\u002FtraceMap](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FtraceMap).  \nThe routing visualization function requires the geographical coordinates of each Hop, but third-party APIs generally do not provide this information, so this function is currently only supported when used with LeoMoeAPI.\n\n#### Mandatory Configuration Steps for `Windows` Users\n\n- **For Normal User Mode:**  \n  Only **ICMP mode** can be used, and the firewall must allow `ICMP\u002FICMPv6` traffic.\n  ```powershell\n  netsh advfirewall firewall add rule name=\"All ICMP v4\" dir=in action=allow protocol=icmpv4:any,any\n  netsh advfirewall firewall add rule name=\"All ICMP v6\" dir=in action=allow protocol=icmpv6:any,any\n  ```\n- **For Administrator Mode:**  \n  **TCP\u002FUDP mode** requires `WinDivert`.  \n  **ICMP mode** supports `1=Socket` and `2=WinDivert` (`0=Auto`). If running in Socket mode, the firewall must allow `ICMP\u002FICMPv6`.  \n  On `Windows`, `ICMPv6` without `--tos` (or with `--tos 0`) keeps using the native Socket send path. A non-zero `ICMPv6 --tos` requires `WinDivert` send support in addition to administrator privilege.  \n  `WinDivert` can be automatically configured using the `--init` parameter, which extracts the runtime to the executable directory.\n\n#### `NextTrace` now supports quick testing, and friends who have a one-time backhaul routing test requirement can use it\n\n```bash\n# IPv4 ICMP Fast Test (Beijing + Shanghai + Guangzhou + Hangzhou) in China Telecom \u002F Unicom \u002F Mobile \u002F Education Network\nnexttrace --fast-trace\n\n# You can also use TCP SYN for testing\nnexttrace --fast-trace --tcp\n\n# You can also quickly test through a customized IP\u002FDOMAIN list file\nnexttrace --file \u002Fpath\u002Fto\u002Fyour\u002Fiplist.txt\n# CUSTOMIZED IP DOMAIN LIST FILE FORMAT\n## One IP\u002FDOMAIN per line + space + description information (optional)\n## forExample:\n## 106.37.67.1 BEIJING-TELECOM\n## 240e:928:101:31a::1 BEIJING-TELECOM\n## bj.10086.cn BEIJING-MOBILE\n## 2409:8080:0:1::1\n## 223.5.5.5\n```\n\n#### `NextTrace` already supports route tracing for specified Network Devices\n\nOn macOS and Linux, `--dev` binds the requested source interface.\nOn Windows, `--dev` resolves the source IP from the selected device and uses that source address for ICMP\u002FTCP\u002FUDP probes; it does not bind WinDivert or sockets to a real egress interface, so Windows routing may still choose a different path. The standalone `--mtu` mode follows the same source-address behavior and also uses the device name for local MTU lookup.\n\n```bash\n# Use eth0 network interface\nnexttrace --dev eth0 2606:4700:4700::1111\n\n# Use eth0 network interface's IP\n# When using the network interface's IP for route tracing, note that the IP type to be traced should be the same as network interface's IP type (e.g. both IPv4)\nnexttrace --source 204.98.134.56 9.9.9.9\n```\n\n#### `NextTrace` can also use `TCP` and `UDP` protocols to perform `Traceroute` requests\n\n```bash\n# TCP SYN Trace\nnexttrace --tcp www.bing.com\n\n# You can specify the port by yourself [here is 443], the default port is 80\nnexttrace --tcp --port 443 2001:4860:4860::8888\n\n# UDP Trace\nnexttrace --udp 1.0.0.1\n\n# You can specify the target port yourself [here it is 5353], the default is port 33494\nnexttrace --udp --port 5353 1.0.0.1\n\n# For TCP\u002FUDP Trace, you can specify the source port; by default, a fixed random port is used\n# (If you need to use a different random source port for each packet, please set the ENV variable NEXTTRACE_RANDOMPORT, or set the source port to -1)\nnexttrace --tcp --source-port 14514 www.bing.com\n```\n\n#### `NextTrace` also supports standalone path-MTU discovery mode\n\n```bash\n# Tracepath-style UDP PMTU discovery with live hop output\nnexttrace --mtu 1.1.1.1\n\n# Reuse the normal GeoIP \u002F RDNS knobs in mtu mode\nnexttrace --mtu --data-provider IPInfo --language en 1.1.1.1\n\n# JSON output keeps the standalone mtu schema and now includes hop.geo\nnexttrace --mtu --json 1.1.1.1\n```\n\n- `--mtu` is an independent UDP-only mode. It does not reuse the normal traceroute engine.\n- TTY output updates the current hop in place and adds color for hop state \u002F PMTU highlights; redirected \u002F piped output falls back to finalized line-by-line streaming without ANSI.\n- `--mtu --json` prints only the standalone MTU JSON document on stdout.\n- GeoIP, RDNS, `--data-provider`, `--language`, `--no-rdns`, `--always-rdns`, and `--dot-server` all apply to this mode.\n\n#### `NextTrace` also supports standalone CDN speed testing mode\n\n```bash\n# Apple CDN backend (default)\nnexttrace --speed\n\n# Cloudflare backend\nnexttrace --speed --speed-provider cloudflare\n\n# Dedicated speed help\nnexttrace --speed --help\n\n# Machine-readable output\nnexttrace --speed --json --non-interactive --no-metadata\n\n# Pin to a specific candidate IP, or bind a source address \u002F device\nnexttrace --speed --endpoint 1.2.3.4\nnexttrace --speed --source 192.0.2.10\nnexttrace --speed --dev eth0\n```\n\n- `--speed` is available only in the full `nexttrace` flavor. `nexttrace-tiny` and `ntr` do not register it.\n- Main `nexttrace --help` only exposes the top-level `--speed` entry. Detailed speed flags live under `nexttrace --speed --help`.\n- Backends: `apple` (default) and `cloudflare`.\n- Reused common flags: `--json`, `--language`, `--no-color`, `--dot-server`, `--timeout`, `--source`, `--dev`.\n- Speed-specific flags: `--speed-provider`, `--max`, `--threads`, `--latency-count`, `--non-interactive`, `--endpoint`, `--no-metadata`.\n- Default terminal output includes candidate endpoints, the selected endpoint, client\u002Fserver metadata, idle latency, download\u002Fupload single-thread and multi-thread rounds, loaded latency, total traffic, warnings, and degraded status.\n- `--json` prints exactly one JSON document to stdout.\n- Exit codes: `0` = success, `2` = degraded completion, `1` = failure, `130` = interrupted.\n\n#### `NextTrace` can annotate IP literals in text streams\n\n```bash\n# Annotate a single line\nnexttrace --nali 1.1.1.1\n\n# Annotate pipeline output\ndig example.com +short | nexttrace --nali --data-provider IPInfo --language en\n```\n\n- `--nali` is available only in the full `nexttrace` flavor. `nexttrace-tiny` and `ntr` do not register it.\n- It only annotates IPv4\u002FIPv6 literals and reuses NextTrace GeoIP providers. CDN\u002FCNAME matching, offline databases, update logic, and nali-specific paths are not bundled.\n- Reused common flags: `--data-provider`, `--language`, `--dot-server`, `--timeout`, `--dn42`, `-4`, and `-6`.\n- This text annotation mode is inspired by [zu1k\u002Fnali](https:\u002F\u002Fgithub.com\u002Fzu1k\u002Fnali), which is licensed under the [MIT License](https:\u002F\u002Fgithub.com\u002Fzu1k\u002Fnali\u002Fblob\u002Fmaster\u002FLICENSE).\n\n#### `NextTrace` also supports some advanced functions, such as ttl control, concurrent probe packet count control, mode switching, etc.\n\n```bash\n# Display 2 latency samples per hop\nnexttrace --queries 2 www.hkix.net\n\n# Allow up to 10 probe packets per hop to collect those samples\n# (NextTrace stops earlier if it has already got the replies requested by --queries)\nnexttrace --max-attempts 10 www.hkix.net\n# or use the ENV variable NEXTTRACE_MAXATTEMPTS to persist across runs\nexport NEXTTRACE_MAXATTEMPTS=10\n\n# No concurrent probe packets, only one probe packet is sent at a time\nnexttrace --parallel-requests 1 www.hkix.net\n\n# Start Trace with TTL of 5, end at TTL of 10\nnexttrace --first 5 --max-hops 10 www.decix.net\n# In addition, an ENV is provided to set whether to mask the destination IP and omit its hostname\nexport NEXTTRACE_ENABLEHIDDENDSTIP=1\n\n# Turn off the IP reverse parsing function\nnexttrace --no-rdns www.bbix.net\n\n# Set the probe packet size to 1024 bytes (inclusive IP + probe headers)\nnexttrace --psize 1024 example.com\n\n# Randomize each probe packet size up to 1500 bytes\nnexttrace --psize -1500 example.com\n\n# Set the TOS \u002F traffic class field\nnexttrace -Q 46 example.com\n\n# Feature: print Route-Path diagram\n# Route-Path diagram example:\n# AS6453 Tata Communication「Singapore『Singapore』」\n#  ╭╯\n#  ╰AS9299 Philippine Long Distance Telephone Co.「Philippines『Metro Manila』」\n#  ╭╯\n#  ╰AS36776 Five9 Inc.「Philippines『Metro Manila』」\n#  ╭╯\n#  ╰AS37963 Aliyun「ALIDNS.COM『ALIDNS.COM』」\nnexttrace --route-path www.time.com.my\n\n# Disable color output\nnexttrace --no-color 1.1.1.1\n# or use ENV\nexport NO_COLOR=1\n```\n\n#### Advanced tuning quick guide\n\n| Flag | What it controls | Default \u002F starting point | When to change it |\n| --- | --- | --- | --- |\n| `--queries` | Samples per hop in normal traceroute; explicit probe count per hop in MTR | traceroute: `3`; MTR report: `10` when omitted; MTR TUI\u002Fraw: unlimited when omitted | Raise to `5-10` on unstable paths |\n| `--max-attempts` | Hard cap on probe packets per hop | auto-sized from `--queries` | Raise on lossy links when replies arrive slowly |\n| `--parallel-requests` | Total in-flight probes across TTLs | `18` | Use `1` on multipath\u002Fload-balanced paths; keep `6-18` on stable links |\n| `--send-time` | Gap between packets inside one TTL group | `50ms` | Raise to `100-200ms` on rate-limited devices; ignored in MTR |\n| `--ttl-time` | Gap between TTL groups in traceroute; per-hop interval in MTR | traceroute: `300ms`; MTR: `1000ms` when omitted | Lower to speed up; raise on remote\u002Frate-limited paths |\n| `--timeout` | Per-probe timeout | `1000ms` | Raise to `2000-3000ms` for intercontinental or high-loss paths |\n| `--psize` | Probe packet size | Protocol\u002FIP-family minimum | Inclusive IP + probe headers; negative values randomize each probe up to `abs(value)`; sizes above the egress\u002Fpath MTU may fragment on wire |\n| `-Q`, `--tos` | IP TOS \u002F traffic class | `0` | Set DSCP\u002FTOS style marking in the IP header; on Windows only `ICMPv6` with a non-zero value requires `WinDivert` |\n\nThese probe knobs are CLI-only today; `nt_config.yaml` does not yet store them. If you want reusable profiles, keep them in shell aliases or small wrapper scripts.\n\n```bash\n# Conservative profile for multipath or ECMP networks\nnexttrace --parallel-requests 1 --send-time 100 --ttl-time 500 --timeout 2000 example.com\n\n# Faster profile for stable single-path networks\nnexttrace --parallel-requests 18 --send-time 20 --ttl-time 150 example.com\n\n# Lossy long-haul profile\nnexttrace --queries 5 --max-attempts 10 --timeout 2500 example.com\n```\n\n#### `NextTrace` supports MTR (My Traceroute) continuous probing mode\n\n```bash\n# MTR mode: continuous probing with ICMP (default), refreshes table in real-time\nnexttrace -t 1.1.1.1\n# or equivalently:\nnexttrace --mtr 1.1.1.1\n\n# MTR mode with TCP SYN probing\nnexttrace -t --tcp --port 443 www.bing.com\n\n# MTR mode with UDP probing\nnexttrace -t --udp 1.0.0.1\n\n# Set per-hop probe interval (default: 1000ms in MTR; -z\u002F--send-time is ignored in MTR mode)\nnexttrace -t -i 500 1.1.1.1\n\n# Limit the max probes per hop (default: infinite in TUI, 10 in report mode)\nnexttrace -t -q 20 1.1.1.1\n\n# Report mode: probe each hop N times then print a final summary (like mtr -r)\nnexttrace -r 1.1.1.1       # = --mtr --report, 10 probes per hop by default\nnexttrace -r -q 5 1.1.1.1  # 5 probes per hop\n\n# Wide report: no host column truncation (like mtr -rw)\nnexttrace -w 1.1.1.1       # = --mtr --report --wide\n\n# Show PTR and IP together (PTR first, IP in parentheses) in MTR output\nnexttrace --mtr --show-ips 1.1.1.1\nnexttrace -r --show-ips 1.1.1.1\nnexttrace -w --show-ips 1.1.1.1\n\n# MTR raw stream mode (machine-friendly, one event per line)\nnexttrace --mtr --raw 1.1.1.1\nnexttrace -r --raw 1.1.1.1\n\n# Combine with other options\nnexttrace -t --tcp --max-hops 20 --first 3 --no-rdns 8.8.8.8\n```\n\nWhen running in a terminal (TTY), MTR mode uses an **interactive full-screen TUI**:\n\n- **`q` \u002F `Q`** — quit (restores terminal, no output left behind)\n- **`p`** — pause probing\n- **`SPACE`** — resume probing\n- **`r`** — reset statistics (counters are cleared, display mode is preserved)\n- **`y`** — cycle host display mode: ASN → City → Owner → Full\n- **`n`** — toggle host name display:\n  - default: PTR (or IP fallback) ↔ IP only\n  - with `--show-ips`: PTR (IP) ↔ IP only\n- **`e`** — toggle MPLS label display on\u002Foff\n- The TUI header displays **source → destination**, with `--source`\u002F`--dev` information when specified.\n- When using LeoMoeAPI, the preferred API IP address is shown in the header.\n- Uses the **alternate screen buffer**, so your previous terminal history is preserved on exit.\n- When stdin is not a TTY (e.g. piped), it falls back to a simple table refresh.\n\nThe **report mode** (`-r`\u002F`--report`) produces a one-shot summary after all probes complete, suitable for scripting:\n\n```text\nStart: 2025-07-14T09:12:00+08:00\nHOST: myhost                    Loss%   Snt   Last    Avg   Best   Wrst  StDev\n  1. one.one.one.one            0.0%    10    1.23   1.45   0.98   2.10   0.32\n  2. 10.0.0.2                 100.0%    10    0.00   0.00   0.00   0.00   0.00\n```\n\nRows shown as `(waiting for reply)` keep the same table layout; the metric cells on that row are left blank.\n\nIn non-wide report mode, NextTrace intentionally keeps the host column compact:\n\n- only `PTR\u002FIP` is shown\n- no Geo API lookup is performed\n- no ASN \u002F owner \u002F location fields are shown\n- MPLS labels are hidden\n\nWide report mode (`-w` \u002F `--wide`) keeps the current full-information behavior, including Geo-derived fields and MPLS output.\n\nWhen `--raw` is used together with MTR (`--mtr`, `-r`, or `-w`), NextTrace enters **MTR raw stream mode**.\n\nIf the active data provider is `LeoMoeAPI`, NextTrace first prints one uncolored API info preamble line:\n\n```text\n[NextTrace API] preferred API IP - [2403:18c0:1001:462:dd:38ff:fe48:e0c5] - 21.33ms - DMIT.NRT\n```\n\nAfter that, it prints one `|`-delimited event per line:\n\n```\n4|84.17.33.106|po66-3518.cr01.nrt04.jp.misaka.io|0.27|60068|Japan|Tokyo|Tokyo||cdn77.com|35.6804|139.7690\n```\n\nField order:\n\n`ttl|ip|ptr|rtt|asn|country|prov|city|district|owner|lat|lng`\n\nTimeout rows keep the same 12-column layout:\n\n`ttl|*||||||||||`\n\nIn MTR mode (`--mtr`, `-r`, `-w`, including `--raw`), `-i\u002F--ttl-time` sets the **per-hop probe interval**: how long to wait between successive probes to the same hop (default: 1000ms when omitted). `-z\u002F--send-time` is ignored in MTR mode.\n\n> Note: `--show-ips` only takes effect in MTR mode (`--mtr`, `-r`, `-w`); otherwise it is ignored.\n>\n> Note: `--mtr` cannot be used together with `--table`, `--classic`, `--json`, `--output`, `--output-default`, `--route-path`, `--from`, `--fast-trace`, `--file`, or `--deploy`.\n\n#### `NextTrace` supports users to select their own IP API (currently supports: `LeoMoeAPI`, `IP.SB`, `IPInfo`, `IPInsight`, `IPAPI.com`, `IPInfoLocal`, `CHUNZHEN`)\n\n```bash\n# You can specify the IP database by yourself [IP-API.com here], if not specified, LeoMoeAPI will be used\nnexttrace --data-provider ip-api.com\n## Note There are frequency limits for free queries of the ipinfo and IPInsight APIs. You can purchase services from these providers to remove the limits\n##      If necessary, you can clone this project, add the token provided by ipinfo or IPInsight and compile it yourself\n##      Fill the token to: ipgeo\u002Ftokens.go\n\n## Note For the offline database IPInfoLocal, please download it manually and rename it to ipinfoLocal.mmdb. (You can download it from here: https:\u002F\u002Fipinfo.io\u002Fsignup?ref=free-database-downloads)\n##      Current directory, nexttrace binary directory and FHS directories (Unix-like) will be searched.\n##      To customize it, please use environment variables,\nexport NEXTTRACE_IPINFOLOCALPATH=\u002Fxxx\u002Fyyy.mmdb\n## Please be aware: Due to the serious abuse of IP.SB, you will often be not able to query IP data from this source\n## IP-API.com has a stricter restiction on API calls, if you can't query IP data from this source, please try again in a few minutes\n\n# The Pure-FTPd IP database defaults to using http:\u002F\u002F127.0.0.1:2060 as the query interface. To customize it, please use environment variables\nexport NEXTTRACE_CHUNZHENURL=http:\u002F\u002F127.0.0.1:2060\n## You can use https:\u002F\u002Fgithub.com\u002Ffreshcn\u002Fqqwry to build your own Pure-FTPd IP database service\n\n# You can also specify the default IP database by setting an environment variable\nexport NEXTTRACE_DATAPROVIDER=ipinfo\n```\n\n#### `NextTrace` supports mixed parameters and shortened parameters\n\n```bash\nExample:\nnexttrace --data-provider IPAPI.com --max-hops 20 --tcp --port 443 --queries 5 --no-rdns 1.1.1.1\nnexttrace -tcp --queries 2 --parallel-requests 1 --table --route-path 2001:4860:4860::8888\n\nEquivalent to:\nnexttrace -d ip-api.com -m 20 -T -p 443 -q 5 -n 1.1.1.1\nnexttrace -T -q 2 --parallel-requests 1 --table -P 2001:4860:4860::8888\n```\n\n### Globalping\n\n[Globalping](https:\u002F\u002Fglobalping.io\u002F) provides access to thousands of community-hosted probes to run network tests and measurements.\n\nRun traceroute from a specified location by using the `--from` flag. The location field accepts continents, countries, regions, cities, ASNs, ISPs, or cloud regions.\n\n```bash\nnexttrace google.com --from Germany\nnexttrace google.com --from comcast+california\n```\n\nA limit of 250 tests per hour is set for all anonymous users. To double the limit to 500 per hour please set the `GLOBALPING_TOKEN` environment variable with your token.\n\n```bash\nexport GLOBALPING_TOKEN=your_token_here\n```\n\n### IP Database\n\nWe use [bgp.tools](https:\u002F\u002Fbgp.tools) as a data provider for routing tables.\n\nNextTrace BackEnd is now open-source.\n\nhttps:\u002F\u002Fgithub.com\u002Fsjlleo\u002Fnexttrace-backend\n\nNextTrace `LeoMoeAPI` now utilizes the Proof of Work (POW) mechanism to prevent abuse, where NextTrace introduces the powclient library as a client-side component. Both the POW CLIENT and SERVER are open source, and everyone is welcome to use them. (Please direct any POW module-related questions to the corresponding repositories)\n\n- [GitHub - tsosunchia\u002Fpowclient: Proof of Work CLIENT for NextTrace](https:\u002F\u002Fgithub.com\u002Ftsosunchia\u002Fpowclient)\n- [GitHub - tsosunchia\u002Fpowserver: Proof of Work SERVER for NextTrace](https:\u002F\u002Fgithub.com\u002Ftsosunchia\u002Fpowserver)\n\nAll NextTrace IP geolocation `API DEMO` can refer to [here](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNTrace-core\u002Fblob\u002Fmain\u002Fipgeo\u002F)\n\n### Environment Variables\n\nNextTrace currently reads the following environment variables. For boolean switches, only `1` and `0` are recognized; other values fall back to the built-in default. For consistency, restart NextTrace after changing them.\n\n#### Core Runtime \u002F Network\n\n| Variable | Default | Description |\n| --- | --- | --- |\n| `NEXTTRACE_DEVMODE` | `0` | Turn fatal errors into panics with stack traces for debugging. |\n| `NEXTTRACE_DEBUG` | unset | Print detected environment values while `GetEnv*` helpers parse them. |\n| `NEXTTRACE_DISABLEMPLS` | `0` | Disable MPLS display globally, similar to `--disable-mpls`. |\n| `NEXTTRACE_ENABLEHIDDENDSTIP` | `0` | Mask the destination IP and omit its hostname in output. |\n| `NEXTTRACE_RANDOMPORT` | `0` | Use a different random source port for each TCP\u002FUDP probe. |\n| `NEXTTRACE_MAXATTEMPTS` | auto | Provide a default `--max-attempts` value when the CLI flag is not set. |\n| `NEXTTRACE_ICMPMODE` | `0` | Provide a default `--icmp-mode` value (`0=auto`, `1=socket`, `2=WinDivert` on Windows). |\n| `NEXTTRACE_UNINTERRUPTED` | `0` | When used together with `--raw`, rerun traceroute continuously instead of stopping after one round. |\n| `NEXTTRACE_PROXY` | unset | Outbound proxy URL for HTTP \u002F WebSocket requests used by PoW, Geo APIs, tracemap, etc. |\n| `NEXTTRACE_DATAPROVIDER` | unset | Override the default IP geolocation provider (for example `ipinfo`). |\n\n#### Service \u002F Web \u002F Backend\n\n| Variable | Default | Description |\n| --- | --- | --- |\n| `NEXTTRACE_HOSTPORT` | `api.nxtrace.org` | Override the backend host or `host:port` used by LeoMoeAPI, tracemap, and FastIP flows. |\n| `NEXTTRACE_TOKEN` | unset | Pre-supplied LeoMoeAPI bearer token; when present, token fetching via PoW is skipped. |\n| `NEXTTRACE_POWPROVIDER` | `api.nxtrace.org` | Select the PoW provider. The built-in non-default alias is `sakura`. |\n| `NEXTTRACE_DEPLOY_ADDR` | unset | Default listen address for `--deploy` when `--listen` is not provided. |\n| `NEXTTRACE_DEPLOY_TOKEN` | unset | Token for `--deploy` WebUI\u002FAPI\u002FWebSocket\u002FMCP access. CLI `--deploy-token` takes precedence. |\n| `NEXTTRACE_ALLOW_CROSS_ORIGIN` | `0` | Only for `--deploy`: allow cross-origin browser access to the Web UI \u002F API. Disabled by default for safety. |\n\n#### IP Database \u002F Third-Party Providers\n\n| Variable | Default | Description |\n| --- | --- | --- |\n| `NEXTTRACE_IPINFOLOCALPATH` | auto search | Full path to `ipinfoLocal.mmdb` for the `IPInfoLocal` provider. |\n| `NEXTTRACE_CHUNZHENURL` | `http:\u002F\u002F127.0.0.1:2060` | Base URL of the Chunzhen lookup service. |\n| `NEXTTRACE_IPINFO_TOKEN` | unset | Token for the `IPInfo` provider. |\n| `NEXTTRACE_IPINSIGHT_TOKEN` | unset | Token for the `IPInsight` provider. |\n| `NEXTTRACE_IPAPI_BASE` | provider built-in URL | Override the base URL used by compatible IP API clients in the current implementation (`IPInfo`, `IPInsight`, `ip-api.com`). |\n| `IPDBONE_BASE_URL` | `https:\u002F\u002Fapi.ipdb.one` | Override the IPDB.One API base URL. |\n| `IPDBONE_API_ID` | unset | IPDB.One API ID. |\n| `IPDBONE_API_KEY` | unset | IPDB.One API key. |\n| `GLOBALPING_TOKEN` | unset | Authentication token for Globalping; raises the anonymous hourly limit when provided. |\n\n#### Config Discovery\n\n| Variable | Default | Description |\n| --- | --- | --- |\n| `XDG_CONFIG_HOME` | OS \u002F shell default | If set, NextTrace also searches `$XDG_CONFIG_HOME\u002Fnexttrace` for `nt_config.yaml`. |\n\n### For full usage list, please refer to the usage menu\n\n```shell\nUsage: nexttrace [-h|--help] [--init] [-4|--ipv4] [-6|--ipv6] [-T|--tcp]\n                 [-U|--udp] [--speed] [--nali] [-F|--fast-trace]\n                 [-p|--port \u003Cinteger>] [--icmp-mode \u003Cinteger>] [-q|--queries \u003Cinteger>]\n                 [--max-attempts \u003Cinteger>] [--parallel-requests \u003Cinteger>]\n                 [-m|--max-hops \u003Cinteger>] [-d|--data-provider\n                 (IP.SB|ip.sb|IPInfo|ipinfo|IPInsight|ipinsight|IPAPI.com|ip-api.com|IPInfoLocal|ipinfolocal|chunzhen|LeoMoeAPI|leomoeapi|ipdb.one|disable-geoip)]\n                 [--pow-provider (api.nxtrace.org|sakura)] [-n|--no-rdns]\n                 [-a|--always-rdns] [-P|--route-path] [--dn42] [-o|--output\n                 \"\u003Cvalue>\"] [-O|--output-default] [--table] [--raw]\n                 [-j|--json] [-c|--classic] [-f|--first \u003Cinteger>] [-M|--map]\n                 [-e|--disable-mpls] [-V|--version]\n                 [-s|--source \"\u003Cvalue>\"] [--source-port \u003Cinteger>] [-D|--dev\n                 \"\u003Cvalue>\"] [--listen \"\u003Cvalue>\"] [--deploy-token \"\u003Cvalue>\"]\n                 [--mcp] [--deploy] [-z|--send-time \u003Cinteger>]\n                 [-i|--ttl-time \u003Cinteger>] [--timeout \u003Cinteger>]\n                 [--psize \u003Cinteger>] [--dot-server\n                 (dnssb|aliyun|dnspod|google|cloudflare)] [-g|--language\n                 (en|cn)] [-C|--no-color] [--from \"\u003Cvalue>\"] [-t|--mtr]\n                 [-r|--report] [-w|--wide] [--show-ips] [-y|--ipinfo \u003Cinteger>]\n                 [--file \"\u003Cvalue>\"] [TARGET \"\u003Cvalue>\"]\n\nArguments:\n\n  -h  --help                         Print help information\n      --init                         Windows ONLY: Extract WinDivert runtime to\n                                     executable directory\n      --speed                        Run CDN speed test mode. See `nexttrace\n                                     --speed --help` for details\n      --nali                         Annotate IP literals in text using\n                                     NextTrace GeoIP data\n  -4  --ipv4                         Use IPv4 only\n  -6  --ipv6                         Use IPv6 only\n  -T  --tcp                          Use TCP SYN for tracerouting (default\n                                     dest-port is 80)\n  -U  --udp                          Use UDP SYN for tracerouting (default\n                                     dest-port is 33494)\n  -F  --fast-trace                   One-Key Fast Trace to China ISPs\n  -p  --port                         Set the destination port to use. With\n                                     default of 80 for \"tcp\", 33494 for \"udp\"\n      --icmp-mode                    Windows ONLY: Choose the method to listen\n                                     for ICMP packets (1=Socket, 2=WinDivert;\n                                     0=Auto)\n  -q  --queries                      Latency samples per hop. Increase to 5-10\n                                     on unstable paths for a steadier view.\n                                     Default: 3\n      --max-attempts                 Advanced: hard cap on probe packets per\n                                     hop. Leave unset for auto sizing; raise on\n                                     lossy links if --queries is not enough\n      --parallel-requests            Advanced: total concurrent in-flight\n                                     probes across TTLs. Use 1 on\n                                     multipath\u002Fload-balanced paths; 6-18 is a\n                                     good starting range on stable links.\n                                     Default: 18\n  -m  --max-hops                     Set the max number of hops (max TTL to be\n                                     reached). Default: 30\n  -d  --data-provider                Choose IP Geograph Data Provider [IP.SB,\n                                     IPInfo, IPInsight, IP-API.com,\n                                     IPInfoLocal, CHUNZHEN, disable-geoip].\n                                     Default: LeoMoeAPI\n      --pow-provider                 Choose PoW Provider [api.nxtrace.org,\n                                     sakura] For China mainland users, please\n                                     use sakura. Default: api.nxtrace.org\n  -n  --no-rdns                      Do not resolve IP addresses to their\n                                     domain names\n  -a  --always-rdns                  Always resolve IP addresses to their\n                                     domain names\n  -P  --route-path                   Print traceroute hop path by ASN and\n                                     location\n      --dn42                         DN42 Mode\n  -o  --output                       Write trace result to FILE\n                                     (RealtimePrinter only)\n  -O  --output-default               Write trace result to the default log file\n                                     (\u002Ftmp\u002Ftrace.log)\n      --table                        Output trace results as a final summary\n                                     table (traceroute report mode)\n      --raw                          Machine-friendly output. With MTR\n                                     (--mtr\u002F-r\u002F-w), enables streaming raw event\n                                     mode\n  -j  --json                         Output trace results as JSON\n  -c  --classic                      Classic Output trace results like\n                                     BestTrace\n  -f  --first                        Start from the first_ttl hop (instead of\n                                     1). Default: 1\n  -M  --map                          Disable Print Trace Map\n  -e  --disable-mpls                 Disable MPLS\n  -V  --version                      Print version info and exit\n  -s  --source                       Use source address src_addr for outgoing\n                                     packets\n      --source-port                  Use source port src_port for outgoing\n                                     packets\n  -D  --dev                          Use the specified network device for\n                                     explicit source selection. On Windows,\n                                     this selects the device source address;\n                                     routing may still choose the egress\n                                     interface\n      --listen                       Set listen address for web console (e.g.\n                                     127.0.0.1:30080)\n      --deploy-token                 Set bearer token for --deploy\n                                     WebUI\u002FAPI\u002FWebSocket\u002FMCP access\n      --mcp                          Enable MCP endpoint under --deploy at\n                                     \u002Fmcp\n      --deploy                       Start the Gin powered web console\n  -z  --send-time                    Advanced: per-packet gap [ms] inside the\n                                     same TTL group. Lower is faster; raise to\n                                     100-200ms on rate-limited links. Ignored\n                                     in MTR mode. Default: 50\n  -i  --ttl-time                     Advanced: TTL-group interval [ms] in\n                                     normal traceroute. In MTR mode\n                                     (--mtr\u002F-r\u002F-w, including --raw), this\n                                     becomes per-hop probe interval. 500-1000ms\n                                     is a good MTR starting range\n      --timeout                      Per-probe timeout [ms]. Raise to 2000-3000\n                                     on slow intercontinental or high-loss\n                                     paths. Default: 1000\n      --psize                        Probe packet size in bytes, inclusive IP\n                                     and active probe headers. Default is the\n                                     minimum legal size for the chosen\n                                     protocol and IP family; raise for MTU or\n                                     large-packet testing. Negative values\n                                     randomize each probe up to abs(value).\n  -Q  --tos                          Set the IP type-of-service \u002F traffic class\n                                     value [0-255]. Default: 0\n      --dot-server                   Use DoT Server for DNS Parse [dnssb,\n                                     aliyun, dnspod, google, cloudflare]\n  -g  --language                     Choose the language for displaying [en,\n                                     cn]. Default: cn\n  -C  --no-color                     Disable Colorful Output\n      --from                         Run traceroute via Globalping\n                                     (https:\u002F\u002Fglobalping.io\u002Fnetwork) from a\n                                     specified location. The location field\n                                     accepts continents, countries, regions,\n                                     cities, ASNs, ISPs, or cloud regions.\n  -t  --mtr                          Enable MTR (My Traceroute) continuous\n                                     probing mode\n  -r  --report                       MTR report mode (non-interactive, implies\n                                     --mtr); can trigger MTR without --mtr\n  -w  --wide                         MTR wide report mode (implies --mtr\n                                     --report); alone equals --mtr --report\n                                     --wide\n      --show-ips                     MTR only: display both PTR hostnames and\n                                     numeric IPs (PTR first, IP in parentheses)\n  -y  --ipinfo                       Set initial MTR TUI host info mode (0-4).\n                                     TUI only; ignored in --report\u002F--raw.\n                                     0:IP\u002FPTR 1:ASN 2:City 3:Owner 4:Full.\n                                     Default: 0\n      --file                         Read IP Address or domain name from file\n      TARGET                         Trace target: IPv4 address (e.g. 8.8.8.8),\n                                     IPv6 address (e.g. 2001:db8::1), domain\n                                     name (e.g. example.com), or URL (e.g.\n                                     https:\u002F\u002Fexample.com)\n```\n\n## Project screenshot\n\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F13616352\u002F216064486-5e0a4ad5-01d6-4b3c-85e9-2e6d2519dc5d.png)\n\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F59512455\u002F218501311-1ceb9b79-79e6-4eb6-988a-9d38f626cdb8.png)\n\n## OpenTrace\n\n`OpenTrace` is the cross-platform `GUI` version of `NextTrace` developed by @Archeb, bringing a familiar but more powerful user experience.\n\nThis software is still in the early stages of development and may have many flaws and errors. We value your feedback.\n\n[https:\u002F\u002Fgithub.com\u002FArcheb\u002Fopentrace](https:\u002F\u002Fgithub.com\u002FArcheb\u002Fopentrace)\n\n## NEXTTRACE WEB API\n\n`NextTraceWebApi` is a web-based server implementation of `NextTrace` in the `MTR` style, offering various deployment options including `Docker`.\n\nFor WebSocket continuous tracing, MTR now streams per-event payloads with `type: \"mtr_raw\"` (instead of periodic `mtr` snapshots).\n\n[https:\u002F\u002Fgithub.com\u002Fnxtrace\u002Fnexttracewebapi](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002Fnexttracewebapi)\n\n## Deploy WebUI and MCP\n\nThe full `nexttrace` binary can expose the local WebUI\u002FAPI\u002FWebSocket server:\n\n```bash\nnexttrace --deploy\n```\n\nMCP is a deploy submode and is exposed over the same network stack at `\u002Fmcp`:\n\n```bash\nnexttrace --deploy --mcp\nnexttrace --deploy --mcp --listen 0.0.0.0:1080 --deploy-token \"$TOKEN\"\n```\n\nLoopback listen addresses (`127.0.0.1`, `::1`, `localhost`) are tokenless by default. External listen addresses require a token; if none is set with `--deploy-token` or `NEXTTRACE_DEPLOY_TOKEN`, NextTrace generates one and prints it to stdout. API, WebSocket, and MCP clients may use `Authorization: Bearer \u003Ctoken>` or `X-NextTrace-Token`; browser WebUI users can sign in at `\u002Fauth\u002Flogin`.\n\n### Register MCP in Agent clients\n\nStart NextTrace first. The MCP endpoint is Streamable HTTP, not stdio:\n\n```text\nhttp:\u002F\u002F127.0.0.1:1080\u002Fmcp\n```\n\nFor external listeners or manually configured tokens, pass the token in an HTTP header. Do not put deploy tokens in URL query strings.\n\nGeneric MCP client config:\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"nexttrace\": {\n        \"url\": \"http:\u002F\u002F127.0.0.1:1080\u002Fmcp\",\n        \"transport\": \"streamable-http\",\n        \"headers\": {\n          \"Authorization\": \"Bearer \u003Ctoken>\"\n        }\n      }\n    }\n  }\n}\n```\n\nOpenClaw can save the same server definition with [`openclaw mcp set`](https:\u002F\u002Fdocs.openclaw.ai\u002Fcli\u002Fmcp):\n\n```bash\nopenclaw mcp set nexttrace '{\n  \"url\": \"http:\u002F\u002F127.0.0.1:1080\u002Fmcp\",\n  \"transport\": \"streamable-http\",\n  \"headers\": {\n    \"Authorization\": \"Bearer \u003Ctoken>\"\n  }\n}'\n```\n\n`openclaw mcp set` only saves the MCP server definition. It does not start NextTrace or verify that the endpoint is reachable, so run `nexttrace --deploy --mcp` first.\n\nUseful first tool calls for Agents:\n\n- `nexttrace_capabilities`\n- `nexttrace_traceroute`\n- `nexttrace_globalping_trace`\n- `nexttrace_globalping_limits`\n\n## NextTraceroute\n\n`NextTraceroute` is a root-free Android route tracing application that defaults to using the `NextTrace API`, developed by @surfaceocean.  \nThank you to all the test users for your enthusiastic support. This app has successfully passed the closed testing phase and is now officially available on the Google Play Store.\n\n[https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNextTraceroute](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNextTraceroute)  \n\u003Ca href='https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.surfaceocean.nexttraceroute&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'>\u003Cimg alt='Get it on Google Play' width=\"128\" height=\"48\" src='https:\u002F\u002Fplay.google.com\u002Fintl\u002Fen_us\u002Fbadges\u002Fstatic\u002Fimages\u002Fbadges\u002Fen_badge_web_generic.png'\u002F>\u003C\u002Fa>\n\n## LeoMoeAPI Credits\n\nNextTrace focuses on Golang Traceroute implementations, and its LeoMoeAPI geolocation information is not supported by raw data, so a commercial version is not possible.\n\nThe LeoMoeAPI data is subject to copyright restrictions from multiple data sources, and is only used for the purpose of displaying the geolocation of route tracing.\n\n1. We would like to credit samleong123 for providing nodes in Malaysia, TOHUNET Looking Glass for global nodes, and Ping.sx from Misaka, where more than 80% of reliable calibration data comes from ping\u002Fmtr reports.\n\n2. At the same time, we would like to credit isyekong for their contribution to rDNS-based calibration ideas and data. LeoMoeAPI is accelerating the development of rDNS resolution function, and has already achieved automated geolocation resolution for some backbone networks, but there are some misjudgments. We hope that NextTrace will become a One-Man ISP-friendly traceroute tool in the future, and we are working on improving the calibration of these ASN micro-backbones as much as possible.\n\n3. In terms of development, I would like to credit missuo and zhshch for their help with Go cross-compilation, design concepts and TCP\u002FUDP Traceroute refactoring, and tsosunchia for their support on TraceMap.\n\n4. I would also like to credit FFEE_CO, TheresaQWQ, stydxm and others for their help. LeoMoeAPI has received a lot of support since its first release, so I would like to credit them all!\n\nWe hope you can give us as much feedback as possible on IP geolocation errors (see issue) so that it can be calibrated in the first place and others can benefit from it.\n\n## Cloudflare Support\n\nThis project is sponsored by [Project Alexandria](http:\u002F\u002Fwww.cloudflare.com\u002Foss-credits).\n\n\u003Cimg src=\"https:\u002F\u002Fcf-assets.www.cloudflare.com\u002Fslt3lc6tev37\u002F2I3y49Uz9Y61lBS0kIPZu6\u002Fdb6df1e6f99a8659267c442b75a0dff9\u002Fimage.png\" alt=\"Cloudflare Logo\" width=\"331\">\n\n## AIWEN TECH Support\n\nThis project is sponsored by [AIWEN TECH](https:\u002F\u002Fwww.ipplus360.com). We’re pleased to enhance the accuracy and completeness of this project’s GEOIP lookups using `AIWEN TECH City-Level IP Database`, and to make it freely available to the public.\n\n\u003Cimg src=\"https:\u002F\u002Fwww.ipplus360.com\u002Fimg\u002FLOGO.c86cd0e1.svg\" title=\"\" alt=\"AIWEN TECH IP Geolocation Data\" width=\"331\">\n\n## JetBrain Support\n\nThis Project uses [JetBrain Open-Source Project License](https:\u002F\u002Fjb.gg\u002FOpenSourceSupport). We Proudly Develop By `Goland`.\n\n\u003Cimg src=\"https:\u002F\u002Fresources.jetbrains.com\u002Fstorage\u002Fproducts\u002Fcompany\u002Fbrand\u002Flogos\u002FGoLand.png\" title=\"\" alt=\"GoLand logo\" width=\"331\">\n\n## Credits\n\n[Gubo](https:\u002F\u002Fwww.gubo.org) Reliable Host Recommendation Website\n\n[IPInfo](https:\u002F\u002Fipinfo.io) Provided most of the data support for this project free of charge\n\n[BGP.TOOLS](https:\u002F\u002Fbgp.tools) Provided some data support for this project free of charge\n\n[PeeringDB](https:\u002F\u002Fwww.peeringdb.com) Provided some data support for this project free of charge\n\n[Globalping](https:\u002F\u002Fglobalping.io) An open-source and free project that provides global access to run network tests like traceroute\n\n[sjlleo](https:\u002F\u002Fgithub.com\u002Fsjlleo) The perpetual leader, founder, and core contributors\n\n[tsosunchia](https:\u002F\u002Fgithub.com\u002Ftsosunchia) The project chair, infra maintainer, and core contributors\n\n[Yunlq](https:\u002F\u002Fgithub.com\u002FYunlq) An active community contributor\n\n[Vincent Young](https:\u002F\u002Fgithub.com\u002Fmissuo)\n\n[zhshch2002](https:\u002F\u002Fgithub.com\u002Fzhshch2002)\n\n[Sam Sam](https:\u002F\u002Fgithub.com\u002Fsamleong123)\n\n[waiting4new](https:\u002F\u002Fgithub.com\u002Fwaiting4new)\n\n[FFEE_CO](https:\u002F\u002Fgithub.com\u002Ffkx4-p)\n\n[bobo liu](https:\u002F\u002Fgithub.com\u002Ffakeboboliu)\n\n[YekongTAT](https:\u002F\u002Fgithub.com\u002Fisyekong)\n\n### Others\n\n- Although other third-party APIs are integrated in this project, please refer to the official website of the third-party APIs for specific TOS and AUP. If you encounter IP data errors, please contact them directly to correct them.\n\n- For feedback related to corrections about IP information, we currently have two channels available:\n\n  > - [IP 错误报告汇总帖](https:\u002F\u002Fgithub.com\u002Forgs\u002Fnxtrace\u002Fdiscussions\u002F222) in the GITHUB ISSUES section of this project (Recommended)\n  > - This project's dedicated correction email: `correct#nxtrace.org` (Please note that this email is only for correcting IP-related information. For other feedback, please submit an ISSUE)\n\n- How to obtain the freshly baked binary executable of the latest commit?\n\n  > Please go to the most recent [Build & Release](https:\u002F\u002Fgithub.com\u002Fnxtrace\u002FNTrace-dev\u002Factions\u002Fworkflows\u002Fbuild.yml) workflow in GitHub Actions.\n\n- Common questions\n  - On Windows, ICMP mode requires manual firewall allowance for ICMP\u002FICMPv6\n  - On macOS, only ICMP mode does not require elevated privileges\n  - In some cases, running multiple instances of NextTrace simultaneously may interfere with each other’s results (observed so far only in TCP mode)\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=nxtrace\u002FNTrace-core&type=Date)](https:\u002F\u002Fstar-history.com\u002F#nxtrace\u002FNTrace-core&Date)\n","NextTrace 是一个开源的可视化路由跟踪命令行工具。它采用 Go 语言开发，追求轻量级设计，具备 IP 查找、地理定位、AS 路径分析等核心功能，能够帮助用户直观地了解数据包在网络中的传输路径。该工具特别适用于网络管理员、安全研究人员以及任何需要进行网络故障排查或性能优化的场景。通过其简洁的界面和强大的功能，NextTrace 成为了网络分析领域的一个有力助手。",2,"2026-06-11 03:27:21","top_topic"]