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.
Respuestas:
puedes usar esto
en el teléfono, configure el mismo puerto proxy que usa en ubuntu y configure la IP proxy como IP del servidor ubuntu.
haz esto en tu ubuntu
1.1.1.1 es IP del teléfono
1.2.3.4 es ubuntu IP
5.6.7.8 es IP del servidor proxy
y habilitar el reenvío de IP
fuente
Estás redirigiendo absolutamente todo. Incluyendo el tráfico DNS. Esto no funciona; CNTLM no proxy DNS.
Intente explícitamente permitir el puerto 53 sin molestar:
iptables -t nat -I PREROUTING -s 10.0.1.118 -p tcp --dport 53 -j ACCEPT iptables -t nat -I PREROUTING -s 10.0.1.118 -p udp --dport 53 -j ACCEPT
fuente
La solución es el complemento:
1- Un servidor DNS: y redirige el tráfico DNS hacia él y el resto del tráfico udp a CNTLM
Esto no resuelve el problema por completo, obtengo el mismo error si ingreso el nombre del sitio web o es IP (antes de instalar el servidor DNS recibo el error justo cuando ingreso la IP del sitio web, por lo que la resolución DNS funcionó)
2- Después de analizar el tráfico del teléfono en los casos con / sin proxy, obtengo esto:
sin el proxy
obtener / http / 1.1
host 74.125.143.101
agente de usuario ...
..
con el proxy
obtener 74.125.143.101/ http / 1.1
host 74.125.143.101
agente de usuario ...
así que la solución es agregar el nombre de host para obtener el encabezado, escribiré una aplicación que sí
Estoy seguro de que funcionará: D
fuente