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.
Respostas:
você pode usar isso
no telefone, configure a mesma porta proxy usada no ubuntu e configure o IP do proxy como IP do servidor ubuntu.
faça isso no seu ubuntu
1.1.1.1 é o IP do telefone
1.2.3.4 é o ubuntu IP
5.6.7.8 é o IP do servidor proxy
e habilitar o encaminhamento de IP
fonte
Você está redirecionando absolutamente tudo. Incluindo tráfego DNS. Isso não funciona; CNTLM não proxy DNS.
Tente permitir explicitamente a porta 53 através de não-molestado:
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
fonte
A solução é o add:
1- Um servidor DNS: redirecione o tráfego DNS para ele e o restante do tráfego udp para CNTLM
Isso não resolve o problema completamente; recebo o mesmo erro, digitando o nome do site ou seu IP (antes de instalar o servidor DNS, recebo o erro exatamente quando digito o IP do site, para que a resolução do DNS funcione)
2- Após analisar o tráfego do telefone nos casos com / sem proxy, recebo o seguinte:
sem o proxy
get / http / 1.1
host 74.125.143.101
agente de usuário ...
..
com o proxy
obter 74.125.143.101/ http / 1.1
host 74.125.143.101
agente de usuário ...
então a solução é adicionar o nome do host para obter o cabeçalho, vou escrever um aplicativo que
Tenho certeza que vai funcionar: D
fonte