2 votos

¿Cómo consultar/cambiar la puerta de enlace por defecto a través de bash en CM12?

Cuando hago una "ruta busybox" en CM12 obtengo esto:

localhost / # busybox route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   *               255.255.255.0   U     0      0        0 wlan0

No hay ninguna puerta de enlace por defecto definida. Prácticamente debe haber una ya que la conexión a Internet funciona correctamente (también está configurada en los ajustes WiFi de Android). Otros usuarios parecen tener el mismo comportamiento de la tabla de enrutamiento (como aquí ). Parece que este comportamiento comenzó con Android5 ya que puedo ver tablas de enrutamiento estándar "estilo linux" (con puerta de enlace predeterminada) en versiones anteriores de Android (como KitKat) en varios lugares de la red.

¿Alguien sabe cómo consultar/configurar/cambiar la puerta de enlace por defecto en CM12/Android 5 a través de shell/bash (no sólo añadir otra ruta con 'route add' - se trata más bien de la específica que ya está configurada)?

4voto

toomim Puntos 199

Me llevó un tiempo encontrar esta respuesta, así que la comparto aquí... Lollipop utiliza diferentes tablas de enrutamiento con reglas por usuario y/o interfaz. Aquí está una muestra cuando estoy conectado en wifi:

root@hammerhead:/ # ip rule show
0:      from all lookup local
10000:  from all fwmark 0xc0000/0xd0000 lookup legacy_system
13000:  from all fwmark 0x10063/0x1ffff lookup local_network
13000:  from all fwmark 0x10064/0x1ffff lookup wlan0
14000:  from all oif wlan0 lookup wlan0
15000:  from all fwmark 0x0/0x10000 lookup legacy_system
16000:  from all fwmark 0x0/0x10000 lookup legacy_network
17000:  from all fwmark 0x0/0x10000 lookup local_network
19000:  from all fwmark 0x64/0x1ffff lookup wlan0
22000:  from all fwmark 0x0/0xffff lookup wlan0
23000:  from all fwmark 0x0/0xffff uidrange 0-0 lookup main
32000:  from all unreachable
root@hammerhead:/ # ip route show
# As in your example, there's no default route here
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.42
root@hammerhead:/ # ip route show table wlan0
#But here you find it in the wlan0 table
default via 192.168.0.253 dev wlan0  proto static
192.168.0.0/24 dev wlan0  proto static  scope link

Las tablas de enrutamiento se leen por prioridad (la primera columna en la visualización de la regla ip), utilizando la primera coincidencia.

Puede alterar una tabla de enrutamiento determinada añadiendo 'nombre_tabla' al final de los comandos ip route ....

Y así obtener la primera pasarela por defecto disponible:

for a in $(ip rule show | grep lookup | sed -r 's/.* lookup ([^ ]+).*/\1/'); do ip route show table $a | grep ^default | cut -d ' ' -f 2-5; done | head -1

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X