Cible :
Effectuer le transfert d'IP pour les appareils du même réseau local. (La cible réelle est le proxy transparent mais le transfert d'IP est une condition préalable).
Configuration du réseau :
Tous les appareils sont dans le même réseau local 192.168.0.0/16
.
- routeur principal
192.168.1.1
- Téléphone Android
192.168.2.1
(interface de réseauwlan0
) - ordinateur
192.168.2.10
passerelle définie comme192.168.2.1
- d'autres comme Raspberry Pi à
192.168.1.11
Configuration Android :
- Données désactivées, seul le WiFi se connecte.
- Android 10 enraciné (Pixel 2 XL)
- pour activer le transfert d'ip par
sysctl -w net.ipv4.ip_forward=1
- netfilter : sur toutes les tables de nat, mangle, filter et raw, exécutez
iptables -F -t <table_name>
yiptables -X -t <table_name>
- rp_filter : Désactiver par
sysctl -w net.ipv4.conf.all.rp_filter=0
ysysctl -w net.ipv4.conf.wlan0.rp_filter=0
Résultat :
- l'ordinateur ne peut pas accéder à l'Internet,
ping
,dig
Dans le navigateur, rien ne fonctionne. - l'ordinateur se connecte aux périphériques locaux sans problème (comme le ping du routeur).
192.168.1.1
Vous pouvez aussi utiliser FireFox en passant par le proxy SOCK5 hébergé sur le Pi). - Le téléphone Android se connecte parfaitement à l'Internet.
Débogage :
- en utilisant
iptables -t <table_name> -L -v
pour montrer le nombre de paquets, toutes les chaînes ont des paquets, *sauf la chaîneFORWARD
chaîne des deuxraw
,mangle
Les tableaux montrentChain FORWARD (policy ACCEPT 0 packets, 0 bytes)
. Après quelques recherches sur Internet, rp_filter est le suspect mais je suis sûr qu'il est désactivé.
0 votes
NetFilter (
iptables
) fonctionne au niveau supérieur de la couche OSI. Qu'en est-il du routage IP (ip rule
yip route
) ? Sont-ils configurés correctement ? Android n'utilise pasmain
par défaut, contrairement aux distros Linux normales. En rapport avec cela : Comment envoyer tout le trafic internet vers un serveur proxy SOCKS5 dans un réseau local ? y Comment transférer l'internet à l'aide d'un Hotspot Android vers un PC ?