Objetivo:
Realiza el reenvío de IP para dispositivos dentro de la misma red local. (El objetivo real es el proxy transparente, pero el reenvío de IP es un requisito previo).
Configuración de la red:
Todos los dispositivos están en la misma red local 192.168.0.0/16
.
- router principal
192.168.1.1
- Teléfono Android
192.168.2.1
(interfaz de redwlan0
) - ordenador
192.168.2.10
puerta de enlace establecida como192.168.2.1
- otros como Raspberry Pi en
192.168.1.11
Configuración de Android:
- Datos desactivados, sólo se conecta el WiFi.
- Android 10 rooteado (Pixel 2 XL)
- habilitado el reenvío de ip por
sysctl -w net.ipv4.ip_forward=1
- netfilter: en todas las tablas de nat, mangle, filter y raw, ejecutar
iptables -F -t <table_name>
yiptables -X -t <table_name>
- rp_filter: Desactivado por
sysctl -w net.ipv4.conf.all.rp_filter=0
ysysctl -w net.ipv4.conf.wlan0.rp_filter=0
Resultado:
- el ordenador no puede acceder a Internet,
ping
,dig
, navegador, no funciona nada. - el ordenador se conecta a los dispositivos locales sin ningún problema (como el ping al router
192.168.1.1
SSH a la Raspberry Pi, o usar FireFox a través del proxy SOCK5 alojado en la Pi). - El teléfono Android se conecta a Internet perfectamente.
Depurar:
- utilizando
iptables -t <table_name> -L -v
para mostrar el recuento de paquetes, todas las cadenas tienen algunos paquetes, *excepto laFORWARD
cadena de ambosraw
,mangle
tablas muestraChain FORWARD (policy ACCEPT 0 packets, 0 bytes)
. Después de googlear un poco, rp_filter es el sospechoso pero seguro que está desactivado.
0 votos
NetFilter (
iptables
) opera en la capa OSI superior. ¿Qué pasa con el enrutamiento IP (ip rule
yip route
)? ¿Están configurados correctamente? Android no utilizamain
por defecto, a diferencia de las distros Linux normales. Relacionado: ¿Cómo enviar todo el tráfico de Internet a un servidor proxy SOCKS5 en la red local? y ¿Cómo transferir Internet a través de Android Hotspot al PC?