在环境中,防火墙阻止所有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