這款輕量級(jí)可視化路由追蹤的神器,太強(qiáng)了!
在 Linux 環(huán)境下,用于網(wǎng)絡(luò)管理的命令有很多。比如:ifconfig、ifup / ifdown、route、arp、netstat、ping、telnet、wget、nslookup 等等。除此之外,還有 traceroute 用來追蹤數(shù)據(jù)包到目標(biāo)主機(jī)間傳輸時(shí)的全部路徑,tracepath 用來追蹤顯示報(bào)文到達(dá)目的主機(jī)所經(jīng)過的路由信息。
那么,基于 traceroute 和 tracepath 命令,今天跟大家推薦一款基于 Go 語(yǔ)言、輕量級(jí)且開源的可視化路由追蹤命令行工具 —— NextTrace。
它基于 nexttrace 命令通過命令行顯示類似于 traceroute 清晰的路由信息。當(dāng)執(zhí)行完一條追蹤的路由信息時(shí),會(huì)自動(dòng)生成 MapTrace URL 也就是一個(gè) HTML,通過瀏覽器訪問該 URL 支持以地圖或 3D 視角的方式可視化展示。
安裝也非常的簡(jiǎn)單,由于我是通過 Linux 操作系統(tǒng)來體驗(yàn)的 NextTrace,可以執(zhí)行如下一鍵安裝腳本進(jìn)行自動(dòng)安裝。
#?Linux?一鍵安裝腳本
bash?<(curl?-Ls?https://raw.githubusercontent.com/sjlleo/nexttrace/main/nt_install.sh)

GitHub 還提供了其他兩種方式的自動(dòng)安裝命令,可參考:
#?GHPROXY?鏡像(國(guó)內(nèi)使用)
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 的參數(shù):
-
-h:幫助信息
-
-T:使用 TCP SYN 進(jìn)行路由追蹤(默認(rèn)端口為:80)
-
-U:使用 UDP SYN 進(jìn)行路由追蹤(默認(rèn)端口為:53)
-
-F:快速追蹤運(yùn)營(yíng)商
-
-p:設(shè)置目的端口
-
-q:每跳探測(cè)的個(gè)數(shù)(默認(rèn)值:3)
-
--parallel-requests:設(shè)置并行請(qǐng)求數(shù),當(dāng)存在多條路由時(shí),應(yīng)該為1(默認(rèn)值:18)
-
-m:設(shè)置最大 TTL 跳數(shù)(默認(rèn)值:30)
-
-d:選擇 IP 地理數(shù)據(jù)提供者(默認(rèn)值:LeoMoeAPI)
-
-n:不解析 IP 地址為域名
-
-a:始終將 IP 地址解析為域名
-
-P:根據(jù) ASN 和位置輸出 traceroute 路徑
-
-r:使用報(bào)告模式輸出
-
--dn42:DN42 模式
-
-o:將跟蹤結(jié)果寫入文件
-
-t:將跟蹤結(jié)果輸出為表
-
-c:經(jīng)典輸出跟蹤結(jié)果
-
-f:從第一個(gè) TLL 跳數(shù)開始,而不是從 1 開始(默認(rèn)值:1)
-
-M:不打印跟蹤地圖
-
-v:打印版本信息并退出
-
-s:發(fā)送報(bào)文時(shí)使用 source src_addr
-
-D:在發(fā)送的報(bào)文中使用網(wǎng)絡(luò)設(shè)備作為源地址
-
-R:顯示路由表
-
-z:設(shè)置每個(gè)報(bào)文發(fā)送的時(shí)間間隔,當(dāng)某些路由對(duì) ICMP 使用速率限制時(shí)有效(默認(rèn)值:100)
-
-i:使用 TTL 值設(shè)置報(bào)文組發(fā)送的時(shí)間間隔,當(dāng)某些路由對(duì) ICMP 使用速率限制時(shí)有效(默認(rèn)值:500)
-
--_positionalArg_nexttrace_25:IP 地址或域名 -
--dot-server:使用 DOT 服務(wù)進(jìn)行 DNS 解析 [dnssb、aliyun、dnspod、google、cloudflare]
-
-g:選擇顯示的語(yǔ)言
NextTrace 的使用:
nexttrace 若不加任何參數(shù),則默認(rèn)使用 ICMP 協(xié)議發(fā)起路由追蹤請(qǐng)求,支持 IPv4 和 IPv6。
#?IPv4?ICMP?Trace
nexttrace?8.8.8.8
#?IPv6?ICMP?Trace
nexttrace?2606:4700:4700::1111

nexttrace 支持域名的路由追蹤,會(huì)根據(jù)提示選擇要跟蹤路由的 IP。
#?URL
nexttrace?https://api.leo.moe/

nexttrace 支持快速測(cè)試
#?測(cè)試 ISP 的路由:國(guó)內(nèi)四網(wǎng)、電信、聯(lián)通、移動(dòng)、教育網(wǎng)、測(cè)試 IP 類型:IPv4 / IPv6 的 ICMP 快速測(cè)試
nexttrace?-F

也可使用 TCP SYN 而非 ICMP 進(jìn)行測(cè)試
nexttrace?-F?-T
nexttrace 指定網(wǎng)卡進(jìn)行路由跟蹤
使用?ens32?網(wǎng)卡
nexttrace?-D?ens32?1.1.1.1

#?使用?ens32?網(wǎng)卡IP
#?使用網(wǎng)卡?IP?進(jìn)行路由跟蹤時(shí)需要注意跟蹤的?IP?類型應(yīng)該和網(wǎng)卡?IP?類型一致(如都為?IPv4)
nexttrace?--source?192.168.0.5?114.114.114.114

nexttrace 可以使用 TCP 和 UDP 協(xié)議發(fā)起 Traceroute 請(qǐng)求。
#?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 的一些進(jìn)階功能,比如:TTL 控制、并發(fā)數(shù)控制、模式切換等
#?每一跳發(fā)送?10?個(gè)探測(cè)包
nexttrace?-q?10?https://api.leo.moe/
#?無(wú)并發(fā),每次只發(fā)送?1?個(gè)探測(cè)包
nexttrace?--parallel-requests?1?https://api.leo.moe/
#?從?TTL?為?10?開始發(fā)送探測(cè)包,直到?TTL?為?20?結(jié)束
nexttrace?-f?10?-m?20?https://api.leo.moe/
#?關(guān)閉?IP?反向解析功能
nexttrace?-n?https://api.leo.moe/
nexttrace 輸出結(jié)果為 Route-Path 圖
nexttrace?-P?https://api.leo.moe/

將跟蹤結(jié)果輸出為表,可以使用--table或-t參數(shù),實(shí)時(shí)顯示結(jié)果。
nexttrace?--table?202.108.23.50

除上述的?nexttrace?用法之外,nexttrace 還可以支持用戶自主選擇 IP 地理數(shù)據(jù)庫(kù),如?[IP.SB,IPInfo,IPInsight,IP-API.com,Ip2region,IPInfoLocal,CHUNZHEN],還有多種混合參數(shù)和簡(jiǎn)略參數(shù)的使用方法,可根據(jù)實(shí)際場(chǎng)景進(jìn)行運(yùn)用。
MapTrace URL 通過瀏覽器所展示出來的地圖效果:

MapTrace URL 通過瀏覽器所展示出來的 3D 效果:

不過話說,這種圖看上去很清晰,一目了然。在該頁(yè)面下右鍵還有放大、縮小地圖比例、顯示或隱藏路由表以及支持生成二維碼,通過手機(jī)掃描進(jìn)行查看。當(dāng)然了,左側(cè)的路由表顯示也并不是全部所追蹤到的路由信息,還請(qǐng)以命令行輸出的結(jié)果為準(zhǔn)。
本文完。
原創(chuàng)推薦:
又一個(gè)基于 GPT-4 編寫、解釋代碼的工具,誕生了!
太強(qiáng)了!這款命令行工具可以在 Linux 文件目錄快速自動(dòng)跳轉(zhuǎn)
寫了個(gè)監(jiān)控 ElasticSearch 進(jìn)程異常的腳本!
太強(qiáng)了!利用 Python 寫了一個(gè)監(jiān)控服務(wù)器資源利用率的腳本!
寫了個(gè)自動(dòng)巡檢多個(gè)接口地址的腳本!

