有没有一种方法可以在Android中获取路由表条目?
请分享相关信息。
感谢Paul M的提示!
在我的Android 6.0.1(LineageOS)上
/system/bin/ip route show table 0
显示所有表的路由
/system/bin/ip route show table rmnet0
显示在rmnet0成为活动接口(移动数据)时使用的路由表。/system/bin/ip route show table wlan0
显示当wlan0处于活动状态时使用的路由表。
在“开发者选项”中,即使wlan0处于活动状态,也可能保持rmnet0处于活动状态。但是同时只能使用一个接口(和一个路由表)。
当WiFi连接到网络但没有Internet链接时,将选择接口rmnet0作为主接口,并使用来自rmnet0表的路由表。
当WiFi具有Internet链接时,将使用wlan0作为主接口,并使用“ip route show table wlan0”作为当前路由表。
您可以通过将“table xxx”添加到路由字符串中来像往常一样使用ip命令添加或删除任何路由表中的路由。
例如:
/system/bin/ip route delete table wlan0 default via 192.168.7.1 dev wlan0 proto static
/system/bin/ip route add table wlan0 192.168.7.0/24 dev wlan0 proto kernel scope link src 192.168.7.10 metric 327
每次接口上下线、租约续订等操作都会覆盖所有路由表。
adb shell "ip route show"
我发现使用解析更加有用且易于处理。
打开命令提示符(Windows)或终端(Mac和Linux)
使用cd
命令切换到android sdk目录下的platform-tools目录
Windows
adb shell cat /proc/net/route
Mac和Linux
./adb shell cat /proc/net/route
Android没有只使用一个路由表,因此查看默认或主要表并不总是有用的!
如果您运行命令“ip rule list”,则会看到有多少个路由表;“lookup nnnn”是表格。然后,您可以使用“ip route show table 1006”查看特定表。
很抱歉我无法告诉您哪个路由表一定是您想查看的。
ip -4 route show table 0 | grep 'default via' | grep wlan0
都能正常工作。我有一个脚本想要在桌面电脑和手机之间共享,所以这非常完美。 - zpangwin