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),若超时则显示*。

作者:帅得不敢出门

相关推荐
_一条咸鱼_4 分钟前
Android Runtime链接(Linking)阶段准备工作(27)
android·面试·android jetpack
aqi001 小时前
FFmpeg开发笔记(六十四)使用国产的RedPlayer播放器观看网络视频
android·ffmpeg·音视频·直播·流媒体
雨白1 小时前
扩展函数和运算符重载
android
没有黑科技2 小时前
5G网络中频段的分配
网络·5g
casual_clover2 小时前
Android Studio 解决首次安装时下载 Gradle 慢问题
android·ide·android studio
搬码临时工3 小时前
如何通过外网访问内网?哪个方案比较好用?跨网远程连接网络知识早知道
网络·智能路由器
天天爱吃肉82183 小时前
新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
android·python·嵌入式硬件·汽车
快乐觉主吖3 小时前
Unity的日志管理类
android·unity·游戏引擎
明月看潮生4 小时前
青少年编程与数学 01-011 系统软件简介 06 Android操作系统
android·青少年编程·操作系统·系统软件·编程与数学
snetlogon204 小时前
JDK17 Http Request 异步处理 源码刨析
android·网络协议·http