如何在adb shell中跟踪路由?

问题描述 投票:0回答:3

我有一个 root 设备,我在 adb shell 中输入“su”,然后尝试跟踪路由。 它说“traceroute:未找到”。 我在任何 bin 文件夹中都找不到 Traceroute。

感谢您的任何提示。

android shell adb traceroute
3个回答
6
投票

Traceroute 不适用于标准 Android 发行版。您可能想尝试在您的设备上安装 BusyBox: http://www.ihackintosh.com/2009/12/how-to-install-busybox-on-a-rooted-device/

它包含许多有用的工具,可在 UNIX 系统上使用,也适用于 Android。可以在这里下载:http://www.busybox.net/


4
投票

安装 busybox 后运行以下命令:

$su
# /path to folder where u have installed busybox/busybox traceroute ip 

就像我已经在

/system/xbin
文件夹中安装了 busybox 然后命令是

# /system/xbin/busybox traceroute  74.125.236.66

0
投票

理解

traceroute
可能会有所帮助: 它只是将数据包发送到您想要的目的地并增加生存时间 (ttl) 字段。如果 ttl 为零,每个路由器(跳)都会向发送者返回一个数据包。通过这种机制,您可以跟踪数据包通过网络的路线。

知道这一点后,您可以简单地 ping 目的地并手动增加 ttl 字段。即(在 adb shell 上,无需 root):

ping -t 1 -c 1 8.8.8.8
ping -t 2 -c 1 8.8.8.8
ping -t 3 -c 1 8.8.8.8
...
ping -t 255 -c 1 8.8.8.8

输出可能如下所示:

From 192.168.1.1: icmp_seq=1 Time to live exceeded

现在您可以看到沿途每一跳的 ips 地址。如果您已到达目的地,您可以停止增加 ttl。

© www.soinside.com 2019 - 2024. All rights reserved.