¿Cómo excluir aplicaciones específicas del uso de la conexión VPN en Android?

Estoy tratando de excluir ciertas aplicaciones del uso de la conexión VPN que se crea en Android para que esas aplicaciones hagan una conexión directa/proxy en lugar de a través del servidor VPN. Uso OpenVPN para Android (admite exclusiones de IP) y proxydroid (una aplicación de envoltorio/proxificador de proxy).

Cuando busqué, dice que la mayoría de las VPN admiten un enrutamiento basado en IP/CIDR/dominio en lugar de un enrutamiento específico de la aplicación. Y también ciertas aplicaciones se pueden forzar a través de VPN mediante el uso de una solución basada en una máquina virtual (ejecutando VPN dentro de VM) mientras que el resto de aplicaciones hacen una conexión directa. Pero no estoy buscando una solución basada en una máquina virtual. También encontré otros dos métodos para forzar solo ciertas aplicaciones a través de la VPN:

Método 1) Configure y use un proxy en el otro extremo de la conexión VPN. Configure las aplicaciones del lado del cliente para usar el proxy.

Método 2) Agregue otra IP local a su interfaz de red y vincule todas las aplicaciones que deben enviarse estrictamente a través de la VPN a esta interfaz. En Linux, el uso de los comandos 'ip route' y 'ip rule' le permitirá definir tablas de enrutamiento no predeterminadas adicionales y asignarlas en función de la dirección de origen.

¿Cómo uso estos métodos en Android? Estoy pensando en vincular una aplicación en particular a una IP y puerto en particular usando proxydroid y luego usar el método de vinculación forzada. ¿Cómo uso este método de vinculación forzada en Android?

Si no es posible a través de ese método, ¿hay algún otro método (como el túnel dividido)?

No es posible con la configuración de AOSP VPN. Se puede lograr con ciertas aplicaciones de terceros.
Estaba tratando de excluir a 'orbot' del uso de VPN, pero parece que no funciona. Otras aplicaciones como Chrome permiten que se excluya de la VPN al conectarse a un servidor proxy.

Respuestas (1)

Solución:

  1. Ejecute la aplicación proxydroid y seleccione las aplicaciones que se enrutarán a través del servidor proxy. Especifique el host, el puerto y el tipo de proxy del servidor proxy en la configuración del proxy.

  2. Excluya la IP del servidor proxy utilizado en la aplicación VPN. Puede usar la aplicación 'OpenVPN para Android'. Vaya a la configuración del servidor VPN y agregue las IP que se excluirán en formato CIDR (en la pestaña 'enrutamiento')

  3. Conéctese a VPN y luego habilite proxydroid.

Esto permitirá que las aplicaciones usen un proxy y las excluirá del uso de la conexión VPN.