我有一个 root 设备,我在 adb shell 中输入“su”,然后尝试跟踪路由。 它说“traceroute:未找到”。 我在任何 bin 文件夹中都找不到 Traceroute。
感谢您的任何提示。
Traceroute 不适用于标准 Android 发行版。您可能想尝试在您的设备上安装 BusyBox: http://www.ihackintosh.com/2009/12/how-to-install-busybox-on-a-rooted-device/
它包含许多有用的工具,可在 UNIX 系统上使用,也适用于 Android。可以在这里下载:http://www.busybox.net/
安装 busybox 后运行以下命令:
$su
# /path to folder where u have installed busybox/busybox traceroute ip
就像我已经在
/system/xbin
文件夹中安装了 busybox 然后命令是
# /system/xbin/busybox traceroute 74.125.236.66
理解
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。