在严格的dns环境中反转usb tethering


2

在环境中,防火墙阻止所有DNS查询。并且不允许使用wifi或3G

我想让一个有根的Android(192.168.42.2)通过PC上的usb接入互联网(对于usb0接口为192.168.42.1)。 PC可以通过静态IP DNS(例如192.168.1.53)连接到Internet eth0(192.168.1.1)(不允许其他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

可以ping Android内的互联网IP。 但是我无法访问dns查询。

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

我在PC(linux OS)上设置了一个dnsmasq,它可以在PC上查询DNS。 但它无法在android内部查询DNS。

# 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

反向usb网络共享方法是在这篇文章之后 http://forum.xda-developers.com/showthread.php?t=2287494 。启用adb debug&amp;在Android上进行USB网络共享,我设置如下:

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

Answers:


0

我不确定我是否得到了正确的图片,因为你没有发布掩码和网关信息,但我认为你根本没有Android界面上的DNS服务器设置。

我能想到的最简单的方法是设置Google DNS服务器

所以在Android上它将是:

IP:192.168.42.2 面具:255.255.255.0 gtw:192.168.42.1

DNS:8.8.8.8      8.8.4.4

验证您可以在使用设置之前ping DNS DNS,但您在上面说过,您可以...


对不起,我更详细地描述了它。问题是8.8.8.8的端口53在我的网络环境中被阻塞了。我正在尝试在Android内部使用dns查询,两个服务器查询都失败了
Daniel YC Lin

0

我遇到了同样的问题。

只需重启DNS服务器就可以了。 我意识到它是从较旧的网络连接通过dhcp启动的

    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.

所以我只是杀了22104并重新启动了dnsmasq作为root - 让它工作:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.