nslookup, dig, firefox ignorant les entrées du fichier / etc / hosts

10

Il y a quelque chose de terriblement mal avec mon installation Debian actuelle. La plupart des programmes comme firefox, nslookup, dig etc. ignorent les entrées du /etc/hostsfichier, en fait j'utilise ce fichier pour le blocage des publicités.

un exemple

une ligne dans un /etc/hostsfichier

127.0.0.1 www.winaproduct.com

quand je le fais, dig +short www.winaproduct.comil renvoie l'adresse IP respective du serveur, non 127.0.0.1.

Ouvert www.winaproduct.comsur Firefox, il affiche le site Web respectif, mais cela n'est pas prévu.

Mais il n'y a pas de problème avec ping, busybox nslookup, busybox ping, resolveipetc.

Alors quel est le problème ? Et comment y remédier? Je pense que le problème vient de la bibliothèque de résolution DNS.

Un correctif arrêt temporaire, la configuration dnsmasqet le changement nameserverde 127.0.0.1dans /etc/resolv.conf.

mise à jour

problème résolu comme par magie après l'installation libnss3, en tant que dépendance degoogle-chrome

/etc/nsswitch.conf par défaut ressemble hosts: files dns

comment savoir nslookup, digetc. demandez d'abord au fichier / etc / hosts au lieu de demander directement au DNS?

mais pourquoi busybox nslookup, wget, resolveipetc. travaillent différemment nslookup, digetc.?

Arnab
la source
à quoi ressemble l' hosts:entrée /etc/nsswitch.conf?
casey
@ casey, /etc/nsswitch.conf ressemble àhosts: files dns
Arnab
Veuillez ajouter ces informations clés dans votre QO.
dan
Ce n'est clairement pas un problème DNS. Veuillez regarder cette question très similaire: unix.stackexchange.com/q/158419/31707 .
dan

Réponses:

16

nslookup, diget hostsont des outils permettant d'interroger les serveurs de noms DNS.

Si votre configuration n'est pas fournie par un serveur de noms (comme les informations fournies dans /etc/hosts), ces outils ne les afficheront pas, car ils demandent directement au serveur de noms.

Si vous voulez vérifier que la résolution "habituelle" fonctionne (c'est-à-dire de la manière indiquée dans /etc/nsswitch.conf), vous pouvez utiliser getent:

getent hosts www.winaproduct.com
michas
la source
getent hosts www.winaproduct.comfonctionne parfaitement, mais nslookup, dig, hostetc. ne sont à titre d' exemple, je veux sur Firefox .
Arnab
1
Si cela fonctionne avec getent, il devrait également fonctionner avec Firefox. (Les deux utilisent le même mécanisme de résolution.) Si cela ne fonctionne vraiment pas, vérifiez la configuration "inhabituelle" dans Firefox. Peut-être que vous définissez une sorte de proxy ou quelque chose comme ça.
michas
merci pour le commentaire, je n'utilise pas de configuration firefox inhabituelle, non cela ne fonctionne pas avec firefox (38.0.1).
Arnab
3
Je suis très sûr qu'il s'agit d'un problème de navigateur. Essayez wgetou un autre navigateur comme Chrome. Si getentdonne le résultat attendu, tous devraient le faire.
michas
1
@daniel Azuelos, il n'y a rien de mal avec les paramètres de Firefox, il utilise déjà No Proxy. Alors, comment dire nslookup, digetc., demandez d' /etc/hostsabord le fichier au lieu de demander directement au DNS?. Merci pour votre précieux commentaire.
Arnab
4

Vous pouvez installer DNSmasq qui lira vos entrées / etc / hosts et les importera dans son cache DNS. Ensuite, tous vos outils DNS et applications de requête DNS tels que dig, host et nslookup recevront des réponses provenant du fichier / etc / hosts.

Tony Barganski
la source