Android设备推送traceroute命令进行网络诊断
文章目录
- 工作原理
- 下载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),若超时则显示*。
作者:帅得不敢出门