Quiero usar Internet de mi escuela en mi Android, el problema es que tienen un proxy Squid y muchas aplicaciones en mi teléfono no usan el proxy en absoluto.
La solución obvia es instalar un proxy transparente en mi Android para forzar a todas las aplicaciones a conectarse a través de él. El problema es que necesito rootear el teléfono para que funcione, y no quiero hacerlo porque no es realmente mi teléfono y rootear es un poco arriesgado.
Otra solución, que es más segura, es hacer que mi computadora funcione como una puerta de enlace, por lo que puse mi IP de Ubuntu en el parámetro de puerta de enlace del teléfono.
Estoy ejecutando un pequeño proxy en mi ubuntu (cntlm), así que redirijo el tráfico de Android a él. Lo hice con "iptables" de la siguiente manera:
iptables -t nat -A PREROUTING -s 10.0.1.118 -p tcp -j REDIRECT --to-ports 8888
iptables -t nat -A PREROUTING -s 10.0.1.118 -p udp -j REDIRECT --to-ports 8888
10.0.1.118 es la IP del teléfono, 8888 es el puerto de cntlm (proxy en mi PC).
Ahora, en el teléfono: cuando entro www.google.com
en el navegador no obtengo nada (sitio web no encontrado, mensaje de error de Firefox).
Pero cuando ingreso http://74.125.143.101
(IP de Google) recibo un mensaje de error del proxy de la escuela (por lo que funcionó de alguna manera: mi PC redirigió el tráfico del teléfono al proxy Squid).
El mensaje de error es:
La URL solicitada no se pudo recuperar
al intentar procesar la solicitud
get / http / 1.1
host 74.125.143.101
user-Agent ...
...
Creo que el problema está en el encabezado "GET", debería estarlo GET 74.125.143.101 HTTP/1.1
. Pero no entiendo lo que está sucediendo, y soy un CCNA certificado.