reversa tethering usb em ambiente de dns estrito

2

No ambiente, toda a consulta DNS é bloqueada pelo firewall. E wifi ou 3G não é permitido

Eu quero permitir que um Android enraizado (192.168.42.2) acesse internet conectando usb no PC (192.168.42.1 para interface usb0). O PC pode se conectar à internet eth0 (192.168.1.1) por um DNS IP estático (por exemplo, 192.168.1.53) (não permitir o acesso a outros dns).

# in PC linux, this is workable (nameserver=192.168.1.53) 
ping 173.194.72.99 # workable for www.google.com's IP
ping www.google.com # failed because even

É possível fazer o ping do ip da internet dentro do Android. Mas eu não consigo acessar a consulta dns.

ping 173.194.72.99 # workable for www.google.com's IP
ping www.google.com # failed because even

Eu configurei um dnsmasq no PC (linux OS), ele pode consultar o DNS no PC. Mas não é possível consultar o DNS dentro do android.

# in Anddroid's busybox nslookup, the usage is nslookup <host> <server>
nslookup www.google.com 192.168.1.53 # failed
nslookup www.google.com 192.168.42.1 # failed

O método de tethering reverso está seguindo este post link . Após ativar adb debug & Tethering USB no Android, eu configurei da seguinte forma:

root@android:/ # netstat -rn
Proto Recv-Q Send-Q Local Address          Foreign Address        State
 tcp       0      0 127.0.0.1:7777         0.0.0.0:*              LISTEN
 tcp       0      0 127.0.0.1:53           0.0.0.0:*              LISTEN
 tcp       0      0 192.168.42.129:53      0.0.0.0:*              LISTEN
 udp       0      0 127.0.0.1:53           0.0.0.0:*              CLOSE
 udp       0      0 192.168.42.129:53      0.0.0.0:*              CLOSE
 udp       0      0 0.0.0.0:67             0.0.0.0:*              CLOSE
1|root@android:/ # ps |grep dns
nobody    8608  115   1028   492   c00ec9e0 400da624 S /system/bin/dnsmasq

1|root@android:/ # ifconfig rndis0 192.168.42.2 netmask 255.255.255.0
1|root@android:/ # route add default gw 192.168.42.1 dev rndis0
1|root@android:/ # ping -c 1 8.8.8.8  # workable
    
por Daniel YC Lin 03.04.2014 / 06:08

2 respostas

0

Não tenho certeza se obtenho a foto correta, já que você não postou informações de máscara e gateway, mas acho que você simplesmente não tem a configuração do servidor DNS na interface do Android.

A maneira mais fácil de pensar é configurar servidores DNS do Google

assim, no Android, seria:

IP: 192.168.42.2 Máscara: 255.255.255.0 gtw: 192.168.42.1

DNS: 8.8.8.8      8.8.4.4

Verifique se você pode fazer o ping do IP do DNS antes de usar as configurações, mas você diz acima, você pode ...

    
por 03.04.2014 / 07:15
0

Eu tenho o mesmo problema.

O simples reinício do servidor DNS fez com que funcionasse para mim. Eu percebi que ele foi iniciado via dhcp de uma conexão de rede mais antiga

    22104 dhcp      1164 S    /system/bin/dnsmasq --keep-in-foreground --no-resolv --no-poll --dhcp-option-force=43,ANDROID_METERED --dhcp-authoritative --pid-file  --dhcp-range=192.168.42.2,192.168.42.254,12h --dhcp-range=192.

Então eu simplesmente matei o 22104 e reiniciei o dnsmasq como root - ele funcionou:)

    
por 14.12.2015 / 20:42