文章目錄
- 工作原理
- 下載traceroute for android
- 推送到安卓設備
- 執行traceroute
- traceroute www.baidu.com
Traceroute(追蹤路由) 是一個用于網絡診斷的工具,主要用于追蹤數據包從源主機到目標主機所經過的路由路徑,以及每一跳(路由器)的響應時間、IP 地址等信息。它通過逐層發送特定類型的網絡數據包,并分析返回的響應來實現路由追蹤。
工作原理
Traceroute 的核心原理基于 ICMP 協議 和 TCP/UDP 協議,具體步驟如下:
- 發送探測數據包
初始時,設置數據包的 TTL(生存時間)值為 1,第一個路由器收到數據包后會將 TTL 減 1 至 0,此時路由器會返回一個 ICMP 超時報文,告知源主機該路由器的存在和響應時間。
隨后,逐步增加 TTL 值(如 2、3、4…),重復上述過程,直到數據包到達目標主機或超過預設的最大跳數(默認通常為 30 或 64)。 - 判斷目標是否可達
當 TTL 值足夠大時,數據包到達目標主機。若目標主機開放了指定端口(如 UDP 的 33434 端口),則會返回 ICMP 端口不可達報文,表示追蹤完成;若使用 TCP 協議,目標主機會返回 SYN/ACK 響應(針對開放端口)。
下載traceroute for android
- 進入traceroute-android-executable github主頁
- 如下圖點擊libs
- 選擇合適的bin,32位系統選擇armeabi-v7a,64位選擇arm64-v8a
- 點擊traceroute
- 點擊下載,如下圖右下角有個下載的圖標,點擊下載可執行文件
推送到安卓設備
得有root權限,否則推送不了或者無法執行,比如下圖放到/sdcard中是執行不了的
推送到/system/bin下
adb root
adb remount
adb push traceroute /system/bin/
執行traceroute
Linux/macOS
traceroute [選項] 目標主機
- 常用選項:
-I:使用 ICMP 協議(默認)。
-T:使用 TCP 協議(針對特定端口,如 80 或 443)。
-U:使用 UDP 協議(默認)。
-n:不解析 IP 地址的域名,直接顯示 IP。
-p:指定 TCP/UDP 端口(僅用于 - T/-U 選項)。
示例:
```bash
traceroute -I www.baidu.com # 使用ICMP追蹤百度
traceroute -T -p 443 www.google.com # 使用TCP 443端口追蹤谷歌
traceroute www.baidu.com
traceroute to www.baidu.com (183.2.172.17), 30 hops max, 60 byte packets
1 XiaoQiang (192.168.31.1) 162.510 ms 160.598 ms 158.673 ms
2 192.168.3.1 (192.168.3.1) 157.332 ms 156.154 ms 155.153 ms
3 * * *
4 100.64.0.1 (100.64.0.1) 170.763 ms 170.129 ms 169.556 ms
5 61.146.241.237 (61.146.241.237) 168.678 ms * 119.145.223.201 (119.145.223.201) 167.655 ms
6 * * *
7 113.96.5.202 (113.96.5.202) 198.940 ms * 113.96.4.6 (113.96.4.6) 196.529 ms
8 * * *
9 14.29.117.170 (14.29.117.170) 28.338 ms 26.507 ms 25.786 ms
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
- 各列含義:
第 1 列:跳數(TTL 值)。
第 2 列:路由器的 IP 地址(或域名)。
第 3-5 列:三次探測的響應時間(ms),若超時則顯示*。
作者:帥得不敢出門