Quero usar a internet da minha escola no meu Android, o problema é que eles têm um proxy Squid e muitos aplicativos no meu telefone não usam o proxy.
A solução óbvia é instalar um proxy transparente no meu Android para forçar todos os aplicativos a se conectarem através dele. O problema é que eu preciso torcer o telefone para fazê-lo funcionar e não quero fazê-lo porque não é realmente meu telefone e o enraizamento é um pouco arriscado-
Outra solução, mais segura, é fazer meu computador funcionar como um gateway, então coloquei meu IP do Ubuntu no parâmetro de gateway do telefone.
Estou executando um pequeno proxy no meu ubuntu (cntlm), então redireciono o tráfego do Android para ele. Eu fiz isso com "iptables" da seguinte maneira:
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 é o IP do telefone, 8888 é a porta do cntlm (proxy no meu PC).
Agora, no telefone: Quando entro www.google.com
no navegador, não recebo nada (site não encontrado, mensagem de erro do Firefox).
Mas, quando entro http://74.125.143.101
(IP do Google), recebo uma mensagem de erro do proxy da escola (por isso funcionou de alguma forma - meu PC redirecionou o tráfego do telefone para o proxy Squid).
A mensagem de erro é:
A URL solicitada não pôde ser recuperada
ao tentar processar a solicitação
get / http / 1.1
host 74.125.143.101
user-Agent ...
...
Eu acho que o problema está no cabeçalho "GET", deveria estar GET 74.125.143.101 HTTP/1.1
. Mas não entendo o que está acontecendo e sou um CCNA certificado.