互联网科技分享技术教程Vivi不懂

目 录CONTENT

文章目录

仅需 2 行命令搞清服务器网络路径,直连还是绕月快来测测看!宝藏全平台路由工具 NextTrace 使用教程!

Vivi
2025-01-03 / 0 评论 / 0 点赞 / 177 阅读 / 0 字

前言

嗨,小伙伴们!今天给大家安利一个使用、选购服务器时非常常用的一个工具——NextTrace!如果你想搞清楚数据包回国出国的具体路径,是直连还是绕地球一圈,这款工具绝对非常适合你!

NextTrace 是一款用 Golang 实现的开源路由追踪工具,功能强大且轻量化,兼容 IPv4 和 IPv6,支持多协议,还带有可视化地图功能,能让你直观地看到数据包的每一步旅程!不管是 BGP 路由表数据、IP归属地,还是 ASN Whois 信息,它都能一站式搞定,简直就是网络诊断工具中的天花板!

好啦,废话不多说,接下来就教给大家,两行命令轻松上手 NextTrace!

教程

1.使用安装脚本,在linux系统上快速安装。

其它系统请参照文末的说明或链接。

curl nxtrace.org/nt | bash

2.快速开始

安装完毕后,此时我们就可以开始测试了。

我们先测一下当前服务器与cloudflare的通讯路由是怎样的。

nexttrace 1.1.1.1

当服务器返回了信息后,就可以看到详细的去程路线啦。

我们也可以使用浏览器访问返回的MapTrace URL ,来通过地图的可视化方式来查看。

怎么样?是不是非常的简单?

补充

1.NextTrace 默认使用ICMP协议发起TraceRoute请求,该协议同时支持IPv4和IPv6。

# IPv4 ICMP Trace
nexttrace 1.0.0.1
# URL
nexttrace http://example.com:8080/index.html?q=1

# 表格打印,使用 --table / -t 参数,将实时显示结果
nexttrace --table 1.0.0.1

# 一个方便供机器读取转化的模式
nexttrace --raw 1.0.0.1
nexttrace --json 1.0.0.1

# 只进行IPv4/IPv6解析,且当多个IP时自动选择第一个IP
nexttrace --ipv4 g.co
nexttrace --ipv6 g.co

# IPv6 ICMP Trace
nexttrace 2606:4700:4700::1111

# 禁用路径可视化 使用 --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

2.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

3.指定网卡进行路由跟踪

# 请注意 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

4.NextTrace 也可以使用TCP和UDP协议发起Traceroute请求,不过目前UDP只支持IPv4

# 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

5.NextTrace也同样支持一些进阶功能,如 TTL 控制、并发数控制、模式切换等

# 每一跳发送2个探测包
nexttrace --queries 2 www.hkix.net

# 无并发,每次只发送一个探测包
nexttrace --parallel-requests 1 www.hkix.net

# 从TTL为5开始发送探测包,直到TTL为10结束
nexttrace --first 5 --max-hops 10 www.decix.net
# 此外还提供了一个ENV,可以设置是否隐匿目的IP
export NEXTTRACE_ENABLEHIDDENDSTIP=1

# 关闭IP反向解析功能
nexttrace --no-rdns www.bbix.net

# 设置载荷大小为1024字节
nexttrace --psize 1024 example.com

# 设置载荷大小以及DF标志进行TCP Trace
nexttrace --psize 1024 --dont-fragment --tcp example.com

# 特色功能:打印Route-Path图
# Route-Path图示例:
# AS6453 塔塔通信「Singapore『Singapore』」
#  ╭╯
#  ╰AS9299 Philippine Long Distance Telephone Co.「Philippines『Metro Manila』」
#  ╭╯
#  ╰AS36776 Five9 Inc.「Philippines『Metro Manila』」
#  ╭╯
#  ╰AS37963 阿里云「ALIDNS.COM『ALIDNS.COM』」
nexttrace --route-path www.time.com.my
# 禁止色彩输出
nexttrace --nocolor 1.1.1.1
# 或者使用环境变量
export NO_COLOR=1

6.NextTrace支持用户自主选择 IP 数据库(目前支持:LeoMoeAPI, IP.SB, IPInfo, IPInsight, IPAPI.com, Ip2region, IPInfoLocal, CHUNZHEN)

# 可以自行指定IP数据库[此处为IP-API.com],不指定则默认为LeoMoeAPI
nexttrace --data-provider ip-api.com
## 特别的: 其中 ipinfo 和 IPInsight API 对于免费版查询有频率限制,可从这些服务商自行购买服务以解除限制,如有需要可以 clone 本项目添加其提供的 token 自行编译
##        TOKEN填写路径:ipgeo/tokens.go

## 特别的: 对于离线库 IPInfoLocal,请自行下载并命名为 ipinfoLocal.mmdb
##        (可以从这里下载:https://ipinfo.io/signup?ref=free-database-downloads),
##        默认搜索用户当前路径、程序所在路径、和 FHS 路径(Unix-like)
##        如果需要自定义路径,请设置环境变量
export NEXTTRACE_IPINFOLOCALPATH=/xxx/yyy.mmdb
##        对于离线库 Ip2region 可NextTrace自动下载,也可自行下载并命名为 ip2region.db
## 另外:由于IP.SB被滥用比较严重,会经常出现无法查询的问题,请知悉。
##      IP-API.com限制调用较为严格,如有查询不到的情况,请几分钟后再试。
# 纯真IP数据库默认使用 http://127.0.0.1:2060 作为查询接口,如需自定义请使用环境变量
export NEXTTRACE_CHUNZHENURL=http://127.0.0.1:2060
## 可使用 https://github.com/freshcn/qqwry 自行搭建纯真IP数据库服务

# 也可以通过设置环境变量来指定默认IP数据库
export NEXTTRACE_DATAPROVIDER=ipinfo

7.NextTrace支持使用混合参数和简略参数

Example:
nexttrace --data-provider ip-api.com --max-hops 20 --tcp --port 443 --queries 5 --no-rdns 1.1.1.1
nexttrace -tcp --queries 2 --parallel-requests 1 --table --route-path 2001:4860:4860::8888

Equivalent to:
nexttrace -d ip-api.com -m 20 -T -p 443 -q 5 -n 1.1.1.1
nexttrace -T -q 2 --parallel-requests 1 -t -P 2001:4860:4860::8888

全部用法详见 Usage 菜单(汉化版)

用法: nexttrace [-h|--help] [-4|--ipv4] [-6|--ipv6] [-T|--tcp] [-U|--udp]
                [-F|--fast-trace] [-p|--port <整数>] [-q|--queries <整数>]
                [--parallel-requests <整数>] [-m|--max-hops <整数>]
                [-d|--data-provider
                (Ip2region|ip2region|IP.SB|ip.sb|IPInfo|ipinfo|IPInsight|ipinsight|IPAPI.com|ip-api.com|IPInfoLocal|ipinfolocal|chunzhen|LeoMoeAPI|leomoeapi|disable-geoip)]
                [--pow-provider (api.nxtrace.org|sakura)] [-n|--no-rdns]
                [-a|--always-rdns] [-P|--route-path] [-r|--report] [--dn42]
                [-o|--output] [-t|--table] [--raw] [-j|--json] [-c|--classic]
                [-f|--first <整数>] [-M|--map] [-e|--disable-mpls]
                [-v|--version] [-s|--source "<值>"] [-D|--dev "<值>"]
                [-z|--send-time <整数>] [-i|--ttl-time <整数>]
                [--timeout <整数>] [--psize <整数>]
                [_positionalArg_nexttrace_32 "<值>"] [--dot-server
                (dnssb|aliyun|dnspod|google|cloudflare)] [-g|--language
                (en|cn)] [--file "<值>"] [-C|--nocolor]

参数说明:

  -h  --help                         显示帮助信息
  -4  --ipv4                         仅使用IPv4
  -6  --ipv6                         仅使用IPv6
  -T  --tcp                          使用TCP SYN进行路由跟踪(默认端口为80)
  -U  --udp                          使用UDP SYN进行路由跟踪(默认端口为33494)
  -F  --fast-trace                   一键快速跟踪至中国ISP
  -p  --port                         设置目标端口。默认TCP为80,UDP为33494
  -q  --queries                      设置每跳的探测包数量。默认值:3
      --parallel-requests            设置并发请求数量。多路由时应为1。默认值:18
  -m  --max-hops                     设置最大跳数(最大TTL)。默认值:30
  -d  --data-provider                选择IP地理信息提供商 [IP.SB, IPInfo, IPInsight,
                                     IP-API.com, Ip2region, IPInfoLocal,
                                     CHUNZHEN, disable-geoip]。默认值:LeoMoeAPI
      --pow-provider                 选择PoW提供商 [api.nxtrace.org, sakura]。
                                     中国大陆用户建议选择sakura。默认值:api.nxtrace.org
  -n  --no-rdns                      禁止解析IP地址为域名
  -a  --always-rdns                  始终解析IP地址为域名
  -P  --route-path                   按ASN和位置打印路由跳路径
  -r  --report                       使用报告模式输出
      --dn42                         启用DN42模式
  -o  --output                       将跟踪结果写入文件
                                     (仅限RealTimePrinter模式)
  -t  --table                        以表格形式输出跟踪结果
      --raw                          以易于解析的格式输出
  -j  --json                         以JSON格式输出跟踪结果
  -c  --classic                      使用类似BestTrace的经典输出模式
  -f  --first                        从指定跳数(TTL)开始(默认从1开始)。默认值:1
  -M  --map                          禁止打印跟踪地图
  -e  --disable-mpls                 禁用MPLS
  -v  --version                      显示版本信息并退出
  -s  --source                       指定用于发出数据包的源地址
  -D  --dev                          指定网络设备作为数据包的源地址
  -z  --send-time                    设置每个数据包发送间隔(毫秒)。
                                     有助于处理部分路由器对ICMP消息的速率限制。
                                     默认值:50
  -i  --ttl-time                     设置按TTL分组发送数据包的间隔(毫秒)。
                                     有助于处理部分路由器对ICMP消息的速率限制。
                                     默认值:50
      --timeout                      设置探测套接字保持打开的时间(毫秒)。
                                     默认值:1000
      --psize                        设置负载大小。默认值:52
      --_positionalArg_nexttrace_32  IP地址或域名
      --dot-server                   使用DoT服务器解析DNS [dnssb, aliyun,
                                     dnspod, google, cloudflare]
  -g  --language                     选择显示语言 [en, cn]。默认值:cn
      --file                         从文件读取IP地址或域名
  -C  --nocolor                      禁用彩色输出
      --dont-fragment                设置“不分片”标志(仅适用于IPv4 TCP)。
                                     默认值:false

其他操作系统的安装命令

  • Linux

    • 一键安装脚本

      curl nxtrace.org/nt | bash
    • Arch Linux AUR 安装命令

      • 直接下载bin包(仅支持amd64)

        yay -S nexttrace-bin
      • 从源码构建(仅支持amd64)

        yay -S nexttrace
      • AUR 的构建分别由 ouuan, huyz 维护

    • Linuxbrew 安装命令

      同macOS Homebrew安装方法(homebrew-core版仅支持amd64)

    • Deepin 安装命令

      apt install nexttrace
    • Termux 安装命令

      pkg install nexttrace-enhanced
  • macOS

    • macOS Homebrew 安装命令

      • homebrew-core版

        brew install nexttrace
      • 本仓库ACTIONS自动构建版(更新更快)

        brew tap nxtrace/nexttrace && brew install nxtrace/nexttrace/nexttrace
      • homebrew-core 构建由 chenrui333 维护,请注意该版本更新可能会落后仓库Action自动构建版本

  • Windows

    • Windows Scoop 安装命令

      • scoop-extras版

        scoop bucket add extras && scoop install extras/nexttrace
      • scoop-extra 由 soenggam 维护

  • X-CMD

    • x-cmd 是一个使用 posix shell 实现的轻量级跨平台包管理器。使用单个命令快速下载并执行 nexttracex nexttrace

      • 您还可以在用户级安装 nexttrace,且不需要 root 权限

        x env use nexttrace

请注意,以上多种安装方式的仓库均由开源爱好者自行维护,不保证可用性和及时更新,如遇到问题请联系仓库维护者解决,或使用本项目官方编译提供的二进制包。

结语

Nexttrace项目已经在Git上获得了6.1K的Star,已被使用了超过 2929.2K+ 次,足以见得这个工具的受欢迎程度。vivi也已经上手用了很久,仅需2行命令,就能可视化查看自己的服务器线路,真的是宝藏软件。

大家觉得好用,别忘记去Git给作者大佬点个Star哦~

参考链接:

原项目地址:https://github.com/nxtrace/NTrace-core

项目官网:https://www.nxtrace.org/

0

评论区