Android-терминал не может nslookup?


14

Каждый раз, когда я пытаюсь подключиться к домену на моем LG Ally, происходит сбой, но он работает, если я использую IP-адрес. Поэтому я попытался использовать, nslookup telehack.comи он возвращает:

Server:       0.0.0.0
Address 1:    0.0.0.0

nslookup: can't resolve 'telehack.com'

У меня установлен эмулятор терминала Android и BusyBox ,

Он не работал с dns по умолчанию, так что теперь у меня есть записи dns, установленные на OpenDNS , и он по-прежнему не разрешается.

Есть ли что-то, что я могу сделать, чтобы решить эту проблему, или это ограничение для Союзника?


У меня нет проблем с NSlookup для этого домена или любого домена по этому вопросу.
Райан Конрад

Как настроена ваша сеть? Порты заблокированы или переадресованы?
Мэтью Прочитал

У меня та же проблема.
Макс Райд

Ответы:


4

Это известная проблема разработки при использовании статически связанных libresolv и glibc.

У вас есть 2 варианта:

  1. Используйте родную библиотеку libc Bionic от Google Android вместо glibc.

  2. Создайте busybox для поиска в библиотеках /system/lib(или сделайте необходимые ссылки, например /usr/lib -> /system/lib). Поместите в свой файл ld-linux.so.3, libc.so.6, libresolv.so.2, libnss_dns.so.2 /system/lib.


Итак, вы хотите, чтобы я повесил гибсона? что?
JKirchartz

1

Убедитесь, что в среде эмулятора терминала DNS настроен правильно, запустив его getprop net.dns1и при необходимости установите его с помощью setprop net.dns1 [yourdns]. Команды могут отличаться в зависимости от устройства, использования net.eth0.dns1или net.gprs.dns1запуска getpropбез параметров, чтобы увидеть все установленные свойства для подсказок.


DNS установлен, я изменил его по умолчанию на openDNS, и он все еще не работает ...
JKirchartz

это nslookupтеперь дают правильный адрес сервера или же он до сих пор показывает 0.0.0.0?
onik

все еще показывает 0.0.0.0
JKirchartz

getprop существует и возвращает IPv6-адрес для DNS-серверов, несмотря на тот факт, что DHCP-сервер передает для них IPv4-адрес. Но setprop не существует.
Майкл

1

войдите в свой терминал, затем введите 'su' и нажмите ввод (примечание работает, только если у вас есть рутированный телефон)

$ su
#

затем введите следующее (замените хххх на ваши днс серверы ip)

# echo 'nameserver x.x.x.x' > /system/etc/resolv.conf
# echo 'nameserver x.x.x.x' >> /system/etc/resolv.conf
# exit

Теперь проверьте, правильно ли это работает

$ nslookup google.com

Это должно разрешить сейчас.


Обратите внимание, что, вероятно, система resolv.confбудет перезаписываться при каждом изменении подключения.
Поток

на самом деле, у меня НИКОГДА не было такого на любом устройстве Android ... Это просто не меняется (я знаю это, потому что мой частный DNS-сервер (локальный) жестко запрограммирован в resolv.conf, и мне нужно вручную установить его для другие сети (используя расширенный диалог))
Мика,

1

Я скопировал (и немного изменил) свой ответ из комментария, который я разместил по проблеме на кодовой странице Google для Terminal IDE, однако он должен быть таким же:

Если у вас есть права root, вы можете установить последнюю версию busybox (возможно, вы сможете скомпилировать ее). Затем выясните, где вы обновили busybox, и выполните следующие команды: (я предполагаю, что новая версия находится, /system/binа старая версия находится ~/system/bin)

PATH=/system/bin:$PATH
cd ~/system/bin
mv busybox busybox.old
ln -s /system/bin/busybox busybox

Теперь домены будут разрешены правильно.

Обратите внимание: из-за того, как работает busybox, вы должны быть пользователем root, чтобы иметь возможность использовать его ping(хотя такие вещи, как wgetи nslookupдолжны быть в состоянии разрешить хосты правильно сейчас). Разработчики busybox работают над этой проблемой.

Я лично использовал это приложение для установки последней версии: https://play.google.com/store/apps/details?id=stericson.busybox


0

Какую сеть вы используете? Если это Wifi, могут ли другие машины в вашей сети связаться с ним? Если это тарифный план оператора связи ... он заблокирован?

Обновление: 0.0.0.0 мне кажется блокировкой файла hosts. Есть ли блокираторы рекламы? Adblock Plus? Хозяева файла модификации?

Попробуйте подключиться к сети USB - если вы оставите здесь комментарий с просьбой об этом, я обновлю вопрос и добавлю учебник (он включен, и я знаю, как это сделать только на машинах GNU / Linux)


Он не работает на 3g (verizon) или на WiFi, тот же 0.0.0.0 не может разрешить.
JKirchartz

0.0.0.0 кажется блоком файла hosts для меня. Есть ли блокираторы рекламы? (Обновление ответа.)
Broam

Раньше у меня был один, но он действительно не работал ... на /system/etc/hostsнего указывает куча URL-адресов со 127.0.0.1
спамом

0

Я использую это в Android от ADB. Может быть, есть лучшие способы.

ip=$(ping -c 1 -W 1 example.com|grep PING|cut -d "(" -f 2|cut -d ")" -f 1)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.