Android

VPN sur Android : configuration et pièges

Android offre plus de contrôle que iOS sur la configuration VPN. Mais ce contrôle supplémentaire s'accompagne de complexités que les surcouches constructeur amplifient. Ce que les réglages par défaut ne font pas — et ce qu'il faut changer.


L'API VPN d'Android — ce qu'elle permet

Android expose une API VPN publique (android.net.VpnService) qui permet aux applications tierces d'établir des tunnels réseau complets. Contrairement à iOS qui limite les clients VPN à l'API NEVPNManager, Android autorise une implémentation complète de WireGuard en espace utilisateur, avec accès direct aux interfaces TUN. Cette ouverture permet des clients plus performants et plus configurables — c'est pourquoi les meilleurs clients VPN Android ont souvent des fonctionnalités absentes de leurs équivalents iOS.

La contrepartie : plus de contrôle signifie plus de responsabilité pour l'utilisateur. Un client VPN mal configuré sur Android expose plus de surface qu'un client iOS contraint par le framework système.

Kill switch — la différence entre OS et application

Android propose deux niveaux de kill switch. Le kill switch applicatif est implémenté par le client VPN lui-même — quand le tunnel tombe, l'application coupe le trafic. C'est le niveau offert par la majorité des clients VPN commerciaux. Sa faiblesse : si l'application elle-même crashe ou est suspendue par le système, le kill switch ne peut pas s'activer.

Le kill switch système, disponible depuis Android 7.0, est implémenté au niveau OS. Paramètres → Réseau et internet → VPN → [votre VPN] → activer "Connexion VPN permanente" et "Bloquer les connexions sans VPN". Ce réglage persiste même si le client VPN est suspendu ou crashe. C'est la seule protection fiable contre les fuites lors des reconnexions.

Activation pas à pas

Sur Android stock (Pixel) : Paramètres → Réseau et internet → VPN → icône engrenage à côté du VPN configuré → activer "Connexion VPN permanente". Sur Samsung One UI : Paramètres → Connexions → Plus de paramètres de connexion → VPN → paramètres du VPN. Sur Xiaomi MIUI : Paramètres → Connexion et partage → VPN → paramètres. L'emplacement exact varie selon la version de la surcouche — chercher "VPN permanent" ou "Always-on VPN" dans les paramètres.

Les surcouches constructeur — un risque documenté

MIUI (Xiaomi), One UI (Samsung), ColorOS (OPPO/OnePlus), EMUI (Huawei) modifient tous la gestion des applications en arrière-plan pour optimiser la batterie. Ces optimisations peuvent suspendre le client VPN sans notification, causant la chute silencieuse du tunnel. Sur MIUI en particulier, le comportement est documenté : les applications non explicitement exemptées sont suspendues après quelques minutes d'inactivité en arrière-plan.

La correction : exclure le client VPN des optimisations batterie. Sur MIUI : Paramètres → Applications → [client VPN] → Économiseur de batterie → "Aucune restriction". Sur One UI : Paramètres → Batterie → Utilisation de la batterie → [client VPN] → "Non restreint". Sur ColorOS : Paramètres → Gestion des applications → [client VPN] → Consommation de la batterie → "Fonctionnement en arrière-plan".

Test de vérification

Après configuration, activer le VPN, laisser l'écran éteint 10 minutes, puis ouvrir ipleak.net. Si l'IP affichée correspond à votre FAI et non au serveur VPN, le tunnel a été suspendu. Recommencer avec l'exemption batterie activée.

Split tunneling — ce qu'il faut savoir

Le split tunneling permet de définir quelles applications passent par le tunnel VPN et lesquelles ont un accès direct. C'est utile pour les applications bancaires qui refusent les connexions VPN, ou pour éviter de router le trafic streaming local dans le tunnel. La configuration par inclusion (seules les applications listées passent par le VPN) est plus sûre que la configuration par exclusion (toutes les applications sauf celles listées).

Le risque du split tunneling mal configuré : une application exclue du tunnel peut révéler votre IP réelle même quand vous pensez être "sous VPN". Vérifier régulièrement la liste des exclusions, notamment après les mises à jour du client VPN qui peuvent réinitialiser les paramètres.

WireGuard natif vs client tiers

Android intègre le module WireGuard dans le kernel depuis Android 5.1 via backport. Les clients VPN qui utilisent cette implémentation native (plutôt qu'une implémentation en espace utilisateur) bénéficient de meilleures performances et d'une consommation batterie réduite. L'application WireGuard officielle utilise l'implémentation kernel sur Android. Les clients commerciaux (Mullvad, ProtonVPN, NordVPN) ont progressivement migré vers cette approche. Vérifier dans les paramètres du client que le protocole WireGuard utilise bien le kernel module et non une implémentation userspace.

Pour aller plus loin sur les différences entre protocoles sur mobile, la page sur les protocoles VPN mobile détaille les arbitrages WireGuard, IKEv2 et OpenVPN sur Android et iOS.

Vérifier la configuration — checklist finale

Après avoir configuré votre VPN sur Android, vérifier ces cinq points dans l'ordre. Premièrement, le kill switch système est actif : Paramètres → VPN → connexion permanente + blocage sans VPN. Deuxièmement, le client VPN est exempté des optimisations batterie. Troisièmement, aucune application sensible n'est exclue du tunnel dans les paramètres de split tunneling. Quatrièmement, les requêtes DNS passent par le tunnel — vérifiable via dnsleaktest.com. Cinquièmement, l'IP affichée sur ipleak.net correspond au serveur VPN après une reconnexion simulée (mode avion 5 secondes).

Ces vérifications prennent moins de cinq minutes et confirment que la protection est réelle, pas seulement nominale. Sur les surcouches comme MIUI ou One UI, une vérification mensuelle est recommandée — les mises à jour du système peuvent réinitialiser certains paramètres.