Como fazer do meu Ubuntu um gateway de internet para o meu telefone Android


1

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.comno 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.


Se você fez isso usando NAT, o endereço MAC do telefone não seria enviado sem modificação? Eu diria que o proxy se autentica com um dispositivo específico e, portanto, está rejeitando os pacotes do seu telefone.
Breakthrough

Respostas:


0

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

iptables -t nat -A POSTROUTING -s 1.1.1.1  -j SNAT --to 1.2.3.4
iptables -t nat -A PREROUTING -s 1.1.1.1 -d  1.2.3.4   -j DNAT --to 5.6.7.8

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

echo 1 > /proc/sys/net/ipv4/ip_forward

Não quero entrar com o proxy no telefone, porque a maioria dos aplicativos não suporta o proxy para ex skype: mesmo que eu entre no proxy da escola, ele não funcione e insira um proxy no meu telefone. janelas que desenvolvi para depurar aplicativos, vejo que o skype não usa o proxy
yacine

OK .. nesse caso, você pode usar o gateway como está usando agora e usá-lo .. iptables -t nat -A PREROUTING -s 1.1.1.1 -d 1.2.3.4 -p tcp --destination-port 80 -j DNAT - -para 5.6.7.8
daya

E para verificação skype se a sua tentativa de usar UPnP
daya

O proxy squid exige uma autenticação NTLM, é por isso que estou usando o CNTLM no meu ubuntu. então como deve ser o comando iptables? muito obrigado pelas suas respostas
yacine

a solicitação GET parece boa, exceto. ele deve ter o Hostnme e não o IP (certamente não funcionará com hosts compartilhados.ie vários sites hospedados em um único IP). quando você não estiver configurando o proxy no telefone, ele tentará enviar uma solicitação de DNS e aguardará uma resposta antes de iniciar uma conexão HTTP.
daya

0

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


sim, está certo. Não recebo nada quando digito o nome do site. Adicionei um servidor DNS e o comando iptables apropriado. Eu recebo o mesmo erro
yacine

0

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.