7 votes

Comment configurer Yosemite pour qu'il puisse résoudre les DNS se terminant par ".local" ?

Yosemite ne semble pas comprendre les domaines qui se terminent par .local

Mon serveur DNS est pointé sur l'ip de la machine debian, qui fait tourner dnsmasq.

Il a une tonne de sites apache configurés qui ont tous des noms comme nomclient.debserver.local - qui se résolvent tous bien à partir des autres machines autour du réseau local (pas Yosemite).

(j'ai essayé de vider le cache, de réinitialiser le réseau, de redémarrer, tous les suspects habituels)

11voto

davidcondrey Points 1578

Apple a fourni une documentation à ce sujet ici . Dans ce document, il est recommandé d'éviter .local si vous le pouvez et en utilisant à la place un suffixe tel que .private , .intranet , .internal ou .lan .

La raison .local est à éviter car il est utilisé par le service Bonjour.


Réponse courte

Ajoutez le domaine de recherche suivant comme dans la capture d'écran (vous pouvez ignorer mes paramètres de serveur DNS) :

enter image description here


Réponse longue

Une autre possibilité est documentée ici dans un article sur les utilisation de Dnsmasq pour le développement local sous OS X et un Question connexe de StackOverflow dans lequel quelqu'un semble avoir trouvé le succès sauf quand il n'est pas en ligne (ce qui n'est pas très logique mais l'essentiel est que cela semble fonctionner pour lui au moins une partie du temps).

L'article en question indique que vous devez créer un répertoire à l'adresse suivante /etc/resolver s'il n'existe pas déjà en utilisant la commande

sudo mkdir -p /etc/resolver

Vous devez maintenant créer un nouveau fichier dans ce répertoire pour chaque résolveur que vous souhaitez configurer. Configurez-le avec au moins ces deux options (il y a d'autres options disponibles) :

  • le nom du résolveur (correspondant au nom de domaine)
  • le serveur DNS à utiliser.

Pour plus d'informations sur ces fichiers, voir la page resolver(5) page de manuel :

man 5 resolver

Créez un nouveau fichier portant le même nom que votre nouveau domaine de premier niveau dans le fichier /etc/resolver/ et y ajouter un serveur de noms en exécutant les commandes suivantes :

sudo tee /etc/resolver/local >/dev/null <<EOF nameserver 127.0.0.1 EOF

Ici local est le nom de domaine de premier niveau configuré pour répondre à et 127.0.0.1 est l'adresse IP du serveur à utiliser.

J'ai regardé si j'avais ce répertoire par défaut et ce n'est pas le cas, mais j'ai remarqué que j'avais un fichier /etc/resolv.conf qui existait par défaut. Je n'ai pas essayé, mais si la solution de l'article n'aboutit pas, j'essaierai d'utiliser cette version préexistante de resolv.conf sous l'hypothèse.. Il doit y avoir une raison à cela .

1voto

evilcandybag Points 101

Apple ne résout pas le problème .local à l'aide d'un serveur DNS, mais Apple Bonjour son zeroconf l'implémentation. Vous pouvez installer Avahi l'implémentation Linux et BSD.

Utilizo netatalk sur mes machines Linux pour communiquer avec OS X

1voto

Stan Kurdziel Points 115

Voir https://apple.stackexchange.com/a/152892/65787 pour trouver un moyen d'automatiser sudo discoveryutil mdnsactivedirectory yes qui force la résolution DNS des domaines .local sur Yosemite.

0voto

hap497 Points 17934

Si vous n'avez qu'un seul Mac et que les adresses IP ne changent pas, vous pouvez contourner le problème et mettre le nom/l'adresse dans le fichier /etc/hosts. Les gens oublient qu'il y a eu une époque avant les DNS où nous maintenions les fichiers hosts synchronisés en les faisant circuler par uucp.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X