Le fichier OS X 10.10.1 / etc / hosts et / private / etc / hosts est ignoré et ne se résout pas


40

Comme le titre le dit, lancer os x 10.10.1. si j’ai une entrée dans mon fichier hosts et que je fais toujours digou nslookupmontre une adresse IP différente de celle figurant dans mon fichier hosts même après avoir tenté de vider différents caches.

J'ai essayé ce qui suit ..

  1. vider les caches mdns et udns en lançant:
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. vider le cache en utilisant dscacheutil -flushcache
  3. recharger le discoveryd.plistfichier
    1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    2. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

mon fichier hosts ressemble à ceci ..

% cat /private/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost
166.78.60.102   admin.devsite1.com

3
Il semble que Yosemite n'utilise pas les hôtes de la même manière qu'auparavant. elle ne vide pas les caches de la même manière non plus, et mDNS a pris le siège arrière - Cela a tout un tas de bavardages sur le sujet - forums.macrumors.com/showthread.php?t=1741422 Modifier ahh ... je suppose vous avez déjà jusqu'à azchipka.thechipkahouse.com/…
Tetsujin

merci, oui j'ai déjà lu ça .. si c'est comme ça que x va être ... c'est minable: \
gorelative

1
Je suis heureux de ne pas devoir compter sur des hôtes sur Mac, tbh; J'ai tendance à toujours jouer dans Win quand j'ai besoin de le faire - bien que ce ne soit pas la seule chose qui me garde loin de Yosemite pour le moment :(
Tetsujin

Ouais, mon rmbp est la principale machine de développement que j'utilise pour le développement Web / administrateur système, malheureusement, et j'ai besoin de le savoir, sinon je reviens aux francs-tireurs.
gorelative

D'autres voudront peut-être simplement désactiver ipv6 sur leurs postes de travail. J'ai trouvé ceci, ce qui explique la clé: technipages.com/how-to-disable-ipv6-in-macos-sierra - Cependant, même après avoir désactivé ipv6 sur ma carte réseau, le problème persiste. .
James T Snell

Réponses:


61

/ private / etc / hosts semble fonctionner normalement pour moi dans Yosemite (version 10.10.1). Il n'est pas nécessaire de vider le cache ou de réinitialiser discoveryd(le résolveur DNS dans Yosemite); sudo fs_usage | grep private/etc/hostsmontre la discoverydlecture du fichier immédiatement après l’enregistrement des modifications.

[Mise à jour: discoverydétait utilisé uniquement dans les versions OS X 10.10.0 à 10.10.3. Dans les versions antérieures et ultérieures, mDNSResponderfournit la même fonction ... et remarque immédiatement les modifications apportées dans / etc / hosts.]

Cependant, dig, nslookupet hostne voient pas entrées parce qu'ils contourner le résolveur du système et de faire des recherches DNS premières. Ils ont toujours fait cela, alors ce n'est pas nouveau à Yosemite. La méthode "officielle" pour effectuer une recherche dans le résolveur système sous OS X consiste à utiliser dscacheutil:

dscacheutil -q host -a name www.example.com

... mais comme c'est douloureusement prolixe, j'ai plutôt tendance à l'utiliser ping(et ensuite, regardez la première ligne, où est répertoriée l'adresse IP utilisée pour effectuer un ping). À partir de la version 10.9, vous pouvez également utiliser l'onglet Recherche de l'utilitaire réseau (auparavant, il l'utilisait diget contournait donc la stratégie de recherche du système).

BTW, s'il vous plaît ne faites pas attention au fil macrumors que Tetsujin a lié; il est plein de gens qui ne savent pas trop ce qu'ils font et qui comprennent mal le résultat de leurs propres erreurs.


1
merci Gordon, ouais j'ai réalisé après que je posté ce que dig, nslookupet hostne pas utiliser la résolution dns locale. Cela étant dit /etc/hostsfonctionne comme prévu ..
gorelative

Si je mets à jour mon /etc/hostsfichier ou mon /private/etc/hostsfichier, cela ne correspond pas du tout à dscacheutil -q host -a name www.example.comune commande ou à une autre commande ..
Trip

3
@Assurez-vous que les entrées que vous avez ajoutées sont correctement formatées: adresse IP suivie d'un espace ou d'une tabulation, suivie du nom, puis d'un saut de ligne à la fin de la ligne. Essayez d’imprimer le fichier hosts avec cat -vet /etc/hostspour rendre visibles les caractères normalement invisibles. Chaque ligne doit ressembler à "127.0.0.1 ^ Inetsecuritybureau.com $" (le "^ I" est un onglet et le "$" correspond au saut de ligne) ou à "127.0.0.1 netsecuritybureau.com $". Si vous voyez un "^ M" (retour à la ligne) juste avant le "$", vous avez du texte au format DOS / Windows et vous devez supprimer le ou les retours à la ligne.
Gordon Davisson

Ah wow merci beaucoup pour l'aide. J'ai suivi votre exemple pour vous assurer qu'il s'agit d'un onglet ou d'un espace. Ma ligne se lit exactement comme suit:, M127.0.0.1^Iyoutube.com^M^Mj’ai ensuite joué dscacheutil -flushcache; sudo killall -HUP mDNSResponderet lors de la navigation sur youtube.com, c’est toujours YouTube et pas localhost.
Trip

@Trip Il existe plusieurs façons de nettoyer les caractères invisibles comme ceux de la ligne de commande, mais je recommanderai l'éditeur d'interface graphique TextWrangler - utilisez le menu Affichage> Affichage du texte> Afficher les invisibles pour voir (et supprimer) des choses comme celles-là. retour du chariot. En outre, il est gratuit et offre des options pour afficher / ouvrir les fichiers et dossiers invisibles (comme / etc), et pour utiliser les droits d'administrateur pour modifier les fichiers système.
Gordon Davisson

17

J'ai découvert une autre ride avec ce problème.

Afin de résoudre le problème que je rencontrais, je devais ajouter des entrées de fichiers hôtes de style IPv6.

Il semble que Safari ignore les entrées IPv4 SI vous avez une configuration de réseau IPv6.

Vous devez ajouter les entrées en double qui se résolvent en adresse IPv6 localhost dans / etc / hosts.

Entrée IPv4 127.68.56.101 facebook.com

p.ex. entrée IPv6 fe80::1%lo0 facebook.com

etc.


1
Notez que j'ai réussi à faire fonctionner celui-ci en utilisant les adresses IP les plus courtes: 0.0.0.0 et :: 1
Ben Morrow

merci, a travaillé pour moi aussi. était en train de me gratter la tête après la restauration de ma configuration vhosts / apache après la mise à niveau. apprécié.
Gavin

Oui, cela a également corrigé le problème.
advert2013

1

Mon fichier hosts a continué à être ignoré après avoir été édité en édition de texte. J'ai essayé plusieurs façons de corriger les fins de ligne, ajouté des entrées IPv6 aux entrées IPv4 existantes sans succès après la réponse de JB Smith ci-dessus . Je soupçonne que sa réponse fonctionnerait si mon entreprise prend en charge IPv6, ce que j'ai découvert après mes tentatives.

La seule solution qui a fonctionné pour moi consiste à utiliser ce plug-in d'interface graphique gratuit pour modifier le fichier hosts.

https://github.com/specialunderwear/Hosts.prefpane/blob/master/README.mdown


1

J'ai trouvé cet article parce que Yosemite 10.10.5 ne récupérait pas les modifications apportées au fichier hosts, et que je ne pouvais rien faire pour le corriger. (J'ai redémarré, essayé de vider les caches, suivi tous les conseils que je pouvais trouver sur Internet, etc.).

La réponse était si simple que c'est embarrassant, en fait, mais je pensais partager. J'ai utilisé textedit pour éditer le fichier hosts et cela m'a permis de sauvegarder le fichier sous le nom hosts.txt. Normalement, je remarquais quelque chose comme cela, mais j'utilise une nouvelle installation de Yosemite et je n'ai pas encore activé l'option "Afficher toutes les extensions de fichier". Il ne semble donc pas que le nom du fichier ait changé lorsque je l'ai visualisé sur mon bureau.

C'est donc un peu évident, et la plupart des gens qui lisent cet article l'ont probablement déjà fait, mais assurez-vous de vérifier que votre fichier hosts est bien présent et qu'il n'a pas été remplacé par hosts.txt .

Pour activer l'affichage des extensions de nom de fichier, accédez à Finder> Préférences> Afficher toutes les extensions de nom de fichier.

Pour empêcher TextEdit d’ajouter une extension .txt aux fichiers, ouvrez un fichier dans Édition de texte et choisissez Fichier> Enregistrer sous (si l’option de menu Enregistrer sous ne s'affiche pas, maintenez la touche Option enfoncée une fois que vous avez cliqué sur Fichier et Enregistrer sous devrait. apparaissent dans le menu). Recherchez l'option Si aucune extension n'est fournie, utilisez ".txt" et désélectionnez-la.


0

Je pense qu'Apple le reconnaîtra comme un bug (j'en ai soumis un aujourd'hui). J'ai remarqué que les nouvelles entrées /etc/hostssont collectées, mais les modifications apportées aux entrées existantes sont ignorées. Donc .... changer le nom d'hôte d'une entrée (par exemple web1 en web1a) m'a fourni une solution de contournement.

Ancienne entrée / etc / hosts: 54.173.164.18 web1

NOUVELLE entrée / etc / hosts: 54.174.161.12 web1a


sudo dscacheutil -flushcache - videra le cache du service d'annuaire.
Kevin Buchs

0

Dans mon cas, j'aurais mis en place un .ssh / config

#Host *.ourdemo.ca
  User jumpy
  ProxyCommand ssh ourjumpbox.ca -W %h:%p

Pourriez-vous expliquer le rôle du fichier de configuration et son lien avec la question?
klanomath

1
La question était de savoir pourquoi une entrée dans un fichier / etc / hosts local était ignorée. Dans mon cas, il était ignoré car j'avais demandé à tout le trafic d'être acheminé vers un ensemble de machines (* .ourdemo.ca) par le biais d'une boîte proxy (notre boîte à outils.ca). SSH a docilement obéi à la connexion, de sorte qu’il s’agissait bien du fichier / etc / hosts du proxy utilisé pour résoudre l’adresse plutôt que de mon fichier / etc / hosts local.
Martin Cleaver

0

J'ai eu un problème très similaire dans lequel j'ai reçu par courrier deux lignes à ajouter à mon /etc/hosts

Le domaine contenait un -commemy-domain.com

Le problème s’est avéré être le client de messagerie de l’expéditeur - peu importe, MS Outlook - qui a converti l’ascii -en -caractère long que Microsoft aime tant utiliser sa correction automatique intégrée pour le remplacer -par son -.

Le fichier hosts avait l'air parfait et il était difficile de trouver ce problème. Quand j'ai supprimé les lignes et les ai écrites manuellement, elles ont commencé à fonctionner.

Il était si difficile de comprendre cela que je me suis plongé profondément dans la raison pour laquelle le client MacOS devait ignorer le fichier hosts et passer directement à la résolution de noms.


0

Juste eu ce problème. Cela a été causé par la création de copier / coller à partir de hipchat au lieu d'écrire l'adresse.

Le processus de copie a ajouté des caractères incorrects au lieu d'espaces et a provoqué le problème.

La réécriture de la ligne a résolu le problème.


0

J'utilise l'application SelfControl (en fait sur macOS mojave 10.14.4) depuis un bon bout de temps maintenant et j'ai pensé vérifier comment SelfControl fait ses entrées ... elles ressemblent à ceci:

0.0.0.0 xyz.com
:: xyz.com
0.0.0.0 www.xyz.com
:: www.xyz.com

sur cette base, j'ai tout changé pour mon localhost, donc

127.0.0.1
::1

travaux.


Je ne sais pas comment cela répond à la question. Cela ressemble à une simple observation aléatoire, sans rapport avec la question.
Tetsujin

1
Pouvez-vous ajouter des détails sur l'endroit où vous avez changé quoi exactement et comment cela se rapporte à la question?
nohillside

La question était de savoir pourquoi le fichier hosts est ignoré depuis 10.10.1 ... J'étais dans la même situation que les entrées manuelles étaient ignorées mais que les entrées effectuées via l'application SelfControl fonctionnaient comme prévu. Ce qui manquait avec mes entrées précédentes, était la deuxième partie, domaines avec "www.". N'a pas été en mesure de comprendre ce qui n'allait pas avec mes entrées, car tout fonctionnait bien avant 10.10.1.
Needlol
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.