Android设备推送traceroute命令进行网络诊断

文章目录

Traceroute(追踪路由) 是一个用于网络诊断的工具,主要用于追踪数据包从源主机到目标主机所经过的路由路径,以及每一跳(路由器)的响应时间、IP 地址等信息。它通过逐层发送特定类型的网络数据包,并分析返回的响应来实现路由追踪。

工作原理

Traceroute 的核心原理基于 ICMP 协议 和 TCP/UDP 协议,具体步骤如下:

  1. 发送探测数据包
    初始时,设置数据包的 TTL(生存时间)值为 1,第一个路由器收到数据包后会将 TTL 减 1 至 0,此时路由器会返回一个 ICMP 超时报文,告知源主机该路由器的存在和响应时间。
    随后,逐步增加 TTL 值(如 2、3、4...),重复上述过程,直到数据包到达目标主机或超过预设的最大跳数(默认通常为 30 或 64)。
  2. 判断目标是否可达
    当 TTL 值足够大时,数据包到达目标主机。若目标主机开放了指定端口(如 UDP 的 33434 端口),则会返回 ICMP 端口不可达报文,表示追踪完成;若使用 TCP 协议,目标主机会返回 SYN/ACK 响应(针对开放端口)。

下载traceroute for android

  1. 进入traceroute-android-executable github主页
  2. 如下图点击libs
  3. 选择合适的bin,32位系统选择armeabi-v7a,64位选择arm64-v8a
  4. 点击traceroute
  5. 点击下载,如下图右下角有个下载的图标,点击下载可执行文件

推送到安卓设备

得有root权限,否则推送不了或者无法执行,比如下图放到/sdcard中是执行不了的

推送到/system/bin下

bash 复制代码
adb root
adb remount
adb push traceroute /system/bin/

执行traceroute

Linux/macOS

bash 复制代码
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

bash 复制代码
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),若超时则显示*。

作者:帅得不敢出门

相关推荐
哲科软件3 小时前
跨平台开发的抉择:Flutter vs 原生安卓(Kotlin)的优劣对比与选型建议
android·flutter·kotlin
Me4神秘6 小时前
电信、移动、联通、广电跨运营商网速慢原因
网络
数通Dinner8 小时前
RSTP 拓扑收敛机制
网络·网络协议·tcp/ip·算法·信息与通信
jyan_敬言9 小时前
【C++】string类(二)相关接口介绍及其使用
android·开发语言·c++·青少年编程·visual studio
程序员老刘9 小时前
Android 16开发者全解读
android·flutter·客户端
liulilittle9 小时前
SNIProxy 轻量级匿名CDN代理架构与实现
开发语言·网络·c++·网关·架构·cdn·通信
tan77º10 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
福柯柯10 小时前
Android ContentProvider的使用
android·contenprovider
不想迷路的小男孩10 小时前
Android Studio 中Palette跟Component Tree面板消失怎么恢复正常
android·ide·android studio
餐桌上的王子10 小时前
Android 构建可管理生命周期的应用(一)
android