0 votos

Quiero desactivar Internet pero no la red

¿Cómo puedo desactivar Internet pero mantener el acceso a la red en una tableta Android? Quiero desactivar el acceso a Internet para todos menos para algunas aplicaciones seleccionadas, al mismo tiempo quiero que las aplicaciones tengan acceso directo a la red interna.

En el pasado he usado un firewall pero este desactiva el acceso a todas las redes. Quiero poder usar mi tableta en casa, al mismo tiempo quiero desactivar el acceso a Internet en ella.

¿Es posible? ¿Cuál es la mejor manera de crear este tipo de limitación para las aplicaciones?

Gracias

2 votos

Deshabilitar el enrutamiento de su tableta en su gateway.

0voto

Tirath Puntos 198

Droidwall una aplicación será la respuesta perfecta para eso. (ATENCIÓN: requerirá permisos de root).

0 votos

No, eso no ayudará aquí. Vea la pregunta una vez más, por favor: En el pasado use un firewall pero este deshabilita el acceso a todas las redes.

0 votos

Izzy gracias por el punto. Es cierto que los firewalls son una gran barrera en Android por lo que no me sirve en la tablet según puedo ver.

0 votos

@Izzy Estoy usando el Droidwall en mi N4 con teléfono de fábrica pero con root y puedo bloquear lo que quiera, y aún así puedo usar la aplicación. Aún así, si necesitas algo más avanzado, como hacer que una aplicación se comporte como si tuviera Internet pero en realidad no lo tiene, entonces puedes usar el "Exposed Framework" (espero que estés al tanto de ello). El Droidwall que mencioné utiliza reglas de tabla IP para modificar la aplicación adecuadamente y lo estoy usando satisfactoriamente.

0voto

Izzy Puntos 45544

En el enrutador

Como roxan ya escribió, esto no se puede hacer en el dispositivo Android en sí (bueno, al menos no fácilmente), pero debería realizarse en su enrutador. Algunos enrutadores permiten especificar, por dispositivo, si se debe permitir el acceso a internet, utilizando un solo "interruptor" (sí/no).

Si eso no es posible, deberías editar las reglas de firewall. Esto requeriría asignar una IP fija a tu dispositivo, para que en tu enrutador pudieras especificar, por ejemplo (pseudo-código):

route from  to  pass
route from  to * reject/drop

(de nuevo, eso es pseudo-código; no estoy tan familiarizado con iptables como para dar la sintaxis exacta de memoria). Lo que haría eso en ese momento: Todos los paquetes de tu dispositivo Android pasarían por el enrutador si van dirigidos a la red interna, pero serían rechazados (visible para el dispositivo Android, para que pueda reaccionar de inmediato) o descartados (las conexiones expirarían) cuando están dirigidos al exterior.

Básicamente, dado que Android también utiliza iptables, uno podría pensar que lo mismo debería ser posible directamente en el dispositivo. Pero no estoy seguro de si eso es realmente cierto: desde el punto de vista del dispositivo Android, todo está dirigido al exterior (a su puerta de enlace). Lo que da otra idea:


En el dispositivo Android

Acabo de verificar en mi dispositivo, y Android incluye de hecho el comando route (aunque necesité ejecutarlo a través de busybox, por ejemplo busybox route para mostrar las rutas configuradas). Así que supongamos que tu red local utiliza 192.168.0.*, y tu enrutador es 192.168.0.1, podrías hacer lo siguiente:

# puerta de enlace predeterminada (debería estar definida), pero no queremos esto
#route add default gw 192.168.0.1 wlan0
route del default gw wlan0
# volver a añadir ruta para acceder a la red local
route add -net 192.168.0.0 netmask 255.255.255.0 192.168.0.1 wlan0

Ahora el dispositivo ya no debería saber qué hacer con paquetes dirigidos, por ejemplo, a 8.8.8.8, y devolvería un "sin ruta al host". El ejemplo ya muestra un problema involucrado: 8.8.8.8 es uno de los servidores de nombres preconfigurados. Así que asegúrate de configurar tu dispositivo para usar un servidor de nombres en tu red local, si deseas resolución de nombres (bueno, el servidor de nombres de Google no será de mucha utilidad para tu red interna tampoco).

Nótese también que la interfaz utilizada podría no llamarse wlan0. Descúbrelo invocando route sin ningún argumento: esto listará todas las rutas establecidas de la siguiente manera:

link-local      *               255.255.0.0     U     1000   0        0 eth0

Así que, en este caso, tuve que usar eth0 para la interfaz.

192.168.0.0     *               255.255.255.0   U     205    0        0 wlan0

Esto describiría nuestro ejemplo, utilizando wlan0 como interfaz, y 192.168.0.* como red. Dado que esta ruta ya estaba presente en la tabla de enrutamiento de mi dispositivo, podría ser suficiente simplemente eliminar la puerta de enlace predeterminada.

No realicé una prueba para verificar que todo funcione plenamente de acuerdo a tu intención (aunque debería, es posible que haya incluido algún error tipográfico aquí o allá). Así que me alegraría saber de ti cómo funcionó todo :)

0 votos

Izzy, gracias por la respuesta súper detallada. Bien explicado. ¿El problema es que, ¿agregar la ruta una vez para el próximo arranque?

0 votos

No, tendrías que repetir eso después de un reinicio. O tendrías que modificar la imagen de arranque correspondientemente, lo cual no es realmente factible. Mucho mejor sería usar Tasker, y tener un script ejecutado después de cada reinicio, si lo necesitas "más permanente".

0voto

Jos Puntos 23

En tu teléfono, encuentra la red a la que estás conectado en las opciones de red conectada y modifica la red en las opciones avanzadas cambiando el valor a "Estático". Puedes dejar sin modificar el campo de dirección IP, pero en el campo de puerta de enlace predeterminada cámbialo a 0.0.0.0 y guarda los cambios. Recibirás un mensaje indicando que la conexión no tiene acceso a Internet, pero seguirás conectado a tu enrutador y podrás acceder a los dispositivos dentro de tu red local. La forma de llegar a esta opción varía dependiendo de tu teléfono y la versión de Android, si no estás seguro, simplemente busca en Google "cómo configurar una dirección IP estática en un (modelo de tu teléfono)".

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