这款轻量级可视化路由追踪的神器,太强了!

杰哥的IT之旅

共 6068字,需浏览 13分钟

 ·

2023-04-07 12:20

在 Linux 环境下,用于网络管理的命令有很多。比如:ifconfig、ifup / ifdown、route、arp、netstat、ping、telnet、wget、nslookup 等等。除此之外,还有 traceroute 用来追踪数据包到目标主机间传输时的全部路径,tracepath 用来追踪显示报文到达目的主机所经过的路由信息。

那么,基于 traceroute 和 tracepath 命令,今天跟大家推荐一款基于 Go 语言、轻量级且开源的可视化路由追踪命令行工具 —— NextTrace。

它基于 nexttrace 命令通过命令行显示类似于 traceroute 清晰的路由信息。当执行完一条追踪的路由信息时,会自动生成 MapTrace URL 也就是一个 HTML,通过浏览器访问该 URL 支持以地图或 3D 视角的方式可视化展示。

安装也非常的简单,由于我是通过 Linux 操作系统来体验的 NextTrace,可以执行如下一键安装脚本进行自动安装。

      # Linux 一键安装脚本
bash <(curl -Ls https://raw.githubusercontent.com/sjlleo/nexttrace/main/nt_install.sh)


3e9df6608bf42d95509e76ed19e06203.webp

GitHub 还提供了其他两种方式的自动安装命令,可参考:

      # GHPROXY 镜像(国内使用)
bash <(curl -Ls https://ghproxy.com/https://raw.githubusercontent.com/sjlleo/nexttrace/main/nt_install.sh)

# macOS brew 安装命令
brew tap xgadget-lab/nexttrace && brew install nexttrace

NextTrace 的用法:

      nexttrace [-h|--help] [-T|--tcp] [-U|--udp] [-F|--fast-trace] [-p|--port
                 <integer>] [-q|
--queries <integer>] [--parallel-requests
                 <integer>] [-m|--max-hops <integer>] [-d|--data-provider
                 (Ip2region|ip2region|IP.SB|ip.sb|IPInfo|ipinfo|IPInsight|ipinsight|IPAPI.com|ip-api.com|IPInfoLocal|ipinfolocal|chunzhen)]
                 [-n|--no-rdns] [-a|--always-rdns] [-P|--route-path]
                 [-r|
--report] [--dn42] [-o|--output] [-t|--table]
                 [-c|--classic] [-f|--first <integer>] [-M|--map]
                 [-v|
--version] [-s|--source "<value>"] [-D|--dev "<value>"]
                 [-R|--route] [-z|--send-time <integer>] [-i|--ttl-time
                 <integer>] [_positionalArg_nexttrace_25 "<value>"]
                 [--dot-server (dnssb|
aliyun|dnspod|google|cloudflare)]
                 [-g|
--language (en|cn)]

NextTrace 的参数:

  • -h:帮助信息

  • -T:使用 TCP SYN 进行路由追踪(默认端口为:80)

  • -U:使用 UDP SYN 进行路由追踪(默认端口为:53)

  • -F:快速追踪运营商

  • -p:设置目的端口

  • -q:每跳探测的个数(默认值:3)

  • --parallel-requests:设置并行请求数,当存在多条路由时,应该为1(默认值:18)

  • -m:设置最大 TTL 跳数(默认值:30)

  • -d:选择 IP 地理数据提供者(默认值:LeoMoeAPI)

  • -n:不解析 IP 地址为域名

  • -a:始终将 IP 地址解析为域名

  • -P:根据 ASN 和位置输出 traceroute 路径

  • -r:使用报告模式输出

  • --dn42:DN42 模式

  • -o:将跟踪结果写入文件

  • -t:将跟踪结果输出为表

  • -c:经典输出跟踪结果

  • -f:从第一个 TLL 跳数开始,而不是从 1 开始(默认值:1)

  • -M:不打印跟踪地图

  • -v:打印版本信息并退出

  • -s:发送报文时使用 source src_addr

  • -D:在发送的报文中使用网络设备作为源地址

  • -R:显示路由表

  • -z:设置每个报文发送的时间间隔,当某些路由对 ICMP 使用速率限制时有效(默认值:100)

  • -i:使用 TTL 值设置报文组发送的时间间隔,当某些路由对 ICMP 使用速率限制时有效(默认值:500)

  • --_positionalArg_nexttrace_25:IP 地址或域名

  • --dot-server:使用 DOT 服务进行 DNS 解析 [dnssb、aliyun、dnspod、google、cloudflare]

  • -g:选择显示的语言

NextTrace 的使用:

nexttrace 若不加任何参数,则默认使用 ICMP 协议发起路由追踪请求,支持 IPv4 和 IPv6。

      IPv4 ICMP Trace
nexttrace 8.8.8.8

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

292f31c98f54fe5e70b3eee05c653511.webp

nexttrace 支持域名的路由追踪,会根据提示选择要跟踪路由的 IP。

      # URL
nexttrace https://api.leo.moe/


df1da8195aebc98d37dd32bf90ebe950.webp

nexttrace 支持快速测试

        # 测试 ISP 的路由:国内四网、电信、联通、移动、教育网、测试 IP 类型:IPv4 / IPv6 的 ICMP 快速测试
nexttrace -F
      

63276f975eec10ce669e5286bd94a916.webp

也可使用 TCP SYN 而非 ICMP 进行测试

        nexttrace -F -T
      

nexttrace 指定网卡进行路由跟踪

        使用 ens32 网卡
nexttrace -D ens32 1.1.1.1
      

2dbf15bc1386f4e8ddc93adf2f75c133.webp


        # 使用 ens32 网卡IP
# 使用网卡 IP 进行路由跟踪时需要注意跟踪的 IP 类型应该和网卡 IP 类型一致(如都为 IPv4
nexttrace --source 192.168.0.5 114.114.114.114
      

c15f2d4d88b2925104c0f003db83f680.webp

nexttrace 可以使用 TCP 和 UDP 协议发起 Traceroute 请求。

        # TCP SYN Trace
nexttrace -T 1.1.1.1
nexttrace -T https://api.leo.moe/

# UDP Trace
nexttrace -U 1.1.1.1
nexttrace -U https://api.leo.moe/

# 可以自行指定端口
nexttrace --tcp --port 443 1.1.1.1
nexttrace --udp --port 5353 1.0.0.1

nexttrace 的一些进阶功能,比如:TTL 控制、并发数控制、模式切换等

        # 每一跳发送 10 个探测包
nexttrace -q 10 https://api.leo.moe/

# 无并发,每次只发送 1 个探测包
nexttrace --parallel-requests 1 https://api.leo.moe/

# 从 TTL 为 10 开始发送探测包,直到 TTL 为 20 结束
nexttrace -f 10 -m 20 https://api.leo.moe/

# 关闭 IP 反向解析功能
nexttrace -n https://api.leo.moe/

nexttrace 输出结果为 Route-Path 图

          nexttrace -P https://api.leo.moe/
      

8dec51f4384fbcbcb4f6ab3468abe772.webp

将跟踪结果输出为表,可以使用--table-t参数,实时显示结果。

        nexttrace --table 202.108.23.50


2ad1dc2df6dfb42f705b5dea49b023f9.webp

除上述的 nexttrace 用法之外,nexttrace 还可以支持用户自主选择 IP 地理数据库,如 [IP.SB,IPInfo,IPInsight,IP-API.com,Ip2region,IPInfoLocal,CHUNZHEN],还有多种混合参数和简略参数的使用方法,可根据实际场景进行运用。

MapTrace URL 通过浏览器所展示出来的地图效果:

5b931f38897b99ac4d5216e4bba9d307.webp

MapTrace URL 通过浏览器所展示出来的 3D 效果:

0b96f68b5b510980ee2e549c57c752dc.webp

不过话说,这种图看上去很清晰,一目了然。在该页面下右键还有放大、缩小地图比例、显示或隐藏路由表以及支持生成二维码,通过手机扫描进行查看。当然了,左侧的路由表显示也并不是全部所追踪到的路由信息,还请以命令行输出的结果为准。

本文完。

原创推荐:

又一个基于 GPT-4 编写、解释代码的工具,诞生了!

太强了!这款命令行工具可以在 Linux 文件目录快速自动跳转

写了个监控 ElasticSearch 进程异常的脚本!

太强了!利用 Python 写了一个监控服务器资源利用率的脚本!

写了个自动巡检多个接口地址的脚本!

c157a78412add3bc2b151e570fbf070d.webp

浏览 58
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报