Terminal Android incapable de nslookup?


14

Chaque fois que j'essaie de me connecter à un domaine sur mon LG Ally, cela échoue, mais cela fonctionne si j'utilise une adresse IP. J'ai donc essayé d'utiliser nslookup telehack.comet ça renvoie:

Server:       0.0.0.0
Address 1:    0.0.0.0

nslookup: can't resolve 'telehack.com'

J'ai Android Terminal Emulator et BusyBox installés,

Cela ne fonctionnait pas avec le DNS par défaut, alors maintenant j'ai mes entrées DNS définies sur OpenDNS , et cela ne résoudra toujours pas.

puis-je faire quelque chose pour résoudre ce problème, ou s'agit-il d'une limitation de l'allié?


Je n'ai aucun problème à faire une recherche NS sur ce domaine ou tout autre domaine d'ailleurs.
Ryan Conrad

Quelle est la configuration de votre réseau? Avez-vous des ports bloqués ou transférés?
Matthew Read

J'ai le même problème.
Max Ried

Réponses:


4

Il s'agit d'un problème de conception connu lors de l'utilisation de libresolv et glibc liés statiquement.

Vous avez 2 options:

  1. Utilisez la bibliothèque libc Bionic native de Google Android au lieu de la glibc.

  2. Créez une boîte occupée pour rechercher des bibliothèques /system/lib(ou faites les liens nécessaires, par exemple /usr/lib -> /system/lib). Placez ld-linux.so.3, libc.so.6, libresolv.so.2, libnss_dns.so.2 dans votre /system/lib.


Alors tu veux que je haxxor le gibson? quelle?
JKirchartz

1

Vérifiez que votre environnement d'émulateur de terminal a DNS correctement défini en exécutant getprop net.dns1et si nécessaire, définissez-le avec setprop net.dns1 [yourdns]. Les commandes peuvent différer selon le périphérique, certaines utilisent net.eth0.dns1ou net.gprs.dns1s'exécutent getpropsans paramètres pour voir toutes les propriétés définies pour les conseils.


le DNS est défini, je l'ai changé par défaut en openDNS et cela ne fonctionne toujours pas ...
JKirchartz

donne nslookupmaintenant l'adresse correcte du serveur ou s'affiche- 0.0.0.0t- elle toujours ?
2011

affiche toujours 0.0.0.0
JKirchartz

getprop existe et renvoie une adresse IPv6 pour les serveurs DNS, malgré le fait que le serveur DHCP leur distribue une adresse IPv4. Mais setprop n'existe pas.
Michael

1

entrez votre terminal, puis tapez 'su' et appuyez sur entrée (remarque ne fonctionne que si vous avez un téléphone rooté)

$ su
#

puis entrez ce qui suit (remplacez xxxx par votre ip de serveurs DNS)

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

Maintenant, testez pour voir si cela a fonctionné correctement

$ nslookup google.com

Cela devrait se résoudre maintenant.


Notez qu'il est probable que le resolv.confsera écrasé à chaque changement de connectivité par le système.
Débit

en fait, je n'ai jamais eu cela sur n'importe quel appareil Android ... Cela ne change tout simplement pas (je le sais parce que j'ai mon serveur DNS privé (local) codé en dur dans le resolv.conf et je dois le configurer manuellement pour autres réseaux (en utilisant la boîte de dialogue avancée))
Mikah

1

J'ai copié (et légèrement modifié) ma réponse à partir d'un commentaire que j'ai publié sur un problème sur la page de codes Google pour Terminal IDE, mais cela devrait être le même:

Si vous êtes rooté, vous pouvez installer la dernière version de busybox (vous pourrez peut-être la compiler). Ensuite, découvrez où vous avez mis à jour la boîte occupée et exécutez les commandes suivantes: (Je suppose que la nouvelle version est /system/binet l'ancienne version ~/system/bin)

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

Désormais, les domaines seront résolus correctement.

Veuillez noter: en raison du fonctionnement de busybox, vous devez être root pour pouvoir l'utiliser ping(bien que des choses comme wgetet nslookupdevraient pouvoir résoudre les hôtes correctement maintenant). Les développeurs de busybox travaillent sur ce problème.

J'ai personnellement utilisé cette application pour installer la dernière version: https://play.google.com/store/apps/details?id=stericson.busybox


0

Quel réseau utilisez-vous? S'il s'agit du Wifi, d'autres machines de votre réseau peuvent-elles le contacter? S'il s'agit d'un plan de données de l'opérateur ... est-il bloqué?

Mise à jour: 0.0.0.0 me semble être un bloc de fichiers d'hôtes. Des bloqueurs de publicités? Adblock Plus? Héberge des modifications de fichiers?

Essayez la mise en réseau USB - si vous postez un commentaire ici pour le demander, je mettrai à jour la question et mettrai un tutoriel (c'est impliqué, et je ne sais comment le faire que sur des machines GNU / Linux)


Cela ne fonctionne pas sur 3g (verizon) ou sur WiFi, même 0.0.0.0 ne peut pas résoudre.
JKirchartz

0.0.0.0 me semble être un bloc de fichiers d'hôtes. Des bloqueurs de publicités? (Mise à jour de la réponse.)
Broam

J'en avais l'habitude mais cela ne fonctionnait pas vraiment ... /system/etc/hostsa un tas d'URL à l' 127.0.0.1
air spammé

0

J'utilise ceci dans Android d'ADB. Il y a peut-être de meilleures façons.

ip=$(ping -c 1 -W 1 example.com|grep PING|cut -d "(" -f 2|cut -d ")" -f 1)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.