Journal Du reverse tethering sur Android (sans root)

Posté par  (site web personnel) . Licence CC By‑SA.
49
6
avr.
2017
Ce journal a été promu en dépêche : Du reverse tethering sur Android (sans root).

Bonjour nal,

Je t'écris pour te présenter un outil que j'ai développé, qui permet aux devices Android d'utiliser la connexion du PC sur lequel ils sont branchés. On appelle ça du "reverse tethering".

Je l'ai appelé gnirehtet (rev <<< tethering en bash).

Il ne nécessite pas d'accès root, que ce soit sur le téléphone ou sur le PC. Par contre, il nécessite Java 8 et adb.

Comment l'utiliser ?

Il suffit de télécharger la dernière release, de l'extraire, et d'exécuter la commande suivante sur le PC :

./gnirehtet rt

La première fois, Android demande une confirmation :

VPN request

Une fois activé, un logo en forme de clé apparaît dans la barre de statut du téléphone :

Key

Pour l'arrêter : Ctrl+C.

Le README donne plus de détails.

Comment ça marche ?

Très succinctement, l'application s'enregistre en tant que VPN pour intercepter tout le trafic réseau du téléphone, qu'il transmet à un serveur tournant sur le PC, qui ouvre les connexions et relaie le contenu dans les deux sens.

Voici un beau dessin pour faire joli (c'est l'architecture du serveur relais) :

Architecture du serveur relais

Des liens

Vers l'∞ (et au-delà)

Notez qu'il est possible d'activer en même temps le tethering (de manière à ce que le PC utilise la connexion du téléphone), et le reverse tethering (pour que le téléphone utilise la connexion du PC). Ne faites pas ça :D

En parlant d'infini (même si ça n'a rien à voir), savais-tu, cher journal, qu'une boucle infinie était un undefined behavior ? (Ah bon, pourquoi ? Quel rapport avec le théorème de Fermat ?)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.