2

В среде все DNS-запросы блокируются брандмауэром. И Wi-Fi или 3G не допускается

Я хочу, чтобы рутованный Android(192.168.42.2) имел доступ к Интернету через плагин usb на ПК (192.168.42.1 для интерфейса usb0). ПК может подключаться к интернету eth0 (192.168.1.1) по статическому IP DNS (например, 192.168.1.53) (не разрешать доступ другим 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

Есть возможность пинговать интернет IP внутри Android. Но я не могу получить доступ к DNS-запрос.

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

Я установил dnsmasq на ПК (ОС Linux), он может запрашивать DNS на ПК. Но он не может запросить DNS внутри 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

Обратный метод USB-модема приведен ниже:http://forum.xda-developers.com/showthread.php?t=2287494. После включения отладки adb и USB-модема на Android я настраиваю следующим образом:

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

2 ответа2

0

Я не уверен, что получаю правильную картинку, поскольку вы не публикуете информацию о маске и шлюзе, но я думаю, что у вас просто нет настройки DNS-сервера в интерфейсе Android.

Самый простой способ, который я могу придумать, - это настроить DNS-серверы Google.

так на андроиде это будет:

IP: 192.168.42.2 Маска: 255.255.255.0, гтв: 192.168.42.1

DNS: 8.8.8.8 8.8.4.4

Убедитесь, что вы можете пропинговать IP-адрес DNS перед использованием настроек, но вы говорите выше, что можете ...

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 - все заработало :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .