10 votes

Faites en sorte que `hostname -f` renvoie le nom d'hôte entièrement qualifié

Comment puis-je faire en sorte que hostname (c'est-à-dire l'outil de ligne de commande Unix hostname, invoqué dans le terminal) renvoie un nom d'hôte incluant les informations de domaine ?

Actuellement, hostname, hostname -f et hostname -s renvoient le même nom, tous sans les informations de domaine, mais host jvf-imac renvoie le nom d'hôte complet :

$ hostname
> jvf-imac
$ hostname -f
> jvf-imac
$ hostname -s
> jvf-imac
$ host jvf-imac                                                                                                                                                                                     
> jvf-imac.fritz.box has address 192.168.178.31

La question ne concerne pas la façon dont je peux obtenir le nom d'hôte complet en général. Certains scripts que j'utilise reposent sur hostname -f pour obtenir le nom d'hôte pleinement qualifié, donc j'ai besoin de faire en sorte que hostname -f renvoie le bon nom d'hôte. Quelqu'un a une idée ?

Mises à jour

Vue d'ensemble du système

  • Version du système : OS X 10.10.5 (14F27)
  • Version du noyau : Darwin 14.5.0
  • Nom de l'ordinateur : jvf_imac

Contenu de resolv.conf (abrégé)

domain fritz.box
nameserver 192.168.178.1

Configuration DNS (abrégée)

$ scutil --dns                                                                                                                                                                                          
resolver #1
  search domain[0] : fritz.box
  nameserver[0] : 192.168.178.1
  if_index : 4 (en0)
  flags    : Request A records
  reach    : Reachable,Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa ...

...

resolver #7
  domain   : b.e.f.ip6.arpa ...

Configuration DNS (pour recherches ciblées)

resolver #1
  search domain[0] : fritz.box
  nameserver[0] : 192.168.178.1
  if_index : 4 (en0)
  flags    : Scoped, Request A records
  reach    : Reachable,Directly Reachable Address

1 votes

Dans Préférences Système > Partage, que dit-il que le nom de l'ordinateur est ? Je crois que hostname obtient le FQDN à partir de là sur OS X, alors que host semble interroger le DNS (bien que je sois sur 10.11…)

0 votes

Pardonnez-moi, pourquoi est-ce utile? Le nom de la machine locale n'obtient qu'une IP s'il est connecté au réseau. La commande 'hostname' est locale, la commande 'host' est basée sur le réseau. Une fois que vous connaissez le nom d'hôte, vous pouvez demander au DNS de le résoudre pour vous.

0 votes

Je suis d'accord avec agentroadkill, je ne vois pas en quoi cela est utile pour ma question, qui ne concerne pas le changement du nom d'hôte mais l'obtention de l'outil en ligne de commande hostname pour afficher le nom d'hôte correct et complet, y compris les informations de domaine. La partie concernant la sortie de l'outil host était simplement pour montrer que ma configuration réseau et DNS semblent fonctionner correctement par ailleurs...

7voto

Oskar Points 1242

OS X est différent dans ce cas en ce sens qu'il pourrait changer vos paramètres lorsqu'il reçoit une réponse de votre routeur / DNS+DHCP.

Si vous n'obtenez pas un FQDN à partir du nom d'hôte, vous pouvez définir un FQDN d'abord.

L'outil Mac est scutil

scutil --get HostName            # même chose que le nom d'hôte
scutil --get LocalHostName       # même chose que hostname -s
scutil --get ComputerName

Si vous voulez jvf-imac.fritz.box alors simplement :

sudo scutil --set HostName jvf-imac.fritz.box

Vous pourriez également définir le nom d'hôte avec sudo hostname ... et ça ne serait pas faux. Si je devais deviner, vous avez probablement fritz.box dans /etc/resolv.conf, ce qui explique pourquoi la recherche DNS ajoute le nom de domaine puisque vous n'avez pas spécifié un de manière plus complète.

0 votes

Bien que la partie scutil soit une réponse que j'aurais donnée également en tant que solution de contournement, la seconde partie est douteuse. Fritz!Box est un routeur domestique (allemand) qui fournit un serveur DHCP et un serveur (proxy-)DNS. Le nom de domaine standard est fritz.box. Hier, j'ai configuré une machine virtuelle uniquement connectée à ce routeur et je n'ai eu aucun problème pour obtenir le FQDN de Mac (=iMac.fritz.box) avec le nom d'hôte.

0 votes

@klanomath Vous avez certainement raison si le problème final est vraiment de savoir comment faire fonctionner un service fritz.box, mais vous pouvez définir le nom de votre hôte comme vous le souhaitez, que cela se résolve ou corresponde ou non à ce que le reste du monde attend :-) Cependant, à moins que l'auteur ne fasse l'effort d'expliquer comment il veut vraiment que soit répondu à une question plus large - peut-être vaut-il mieux laisser cela pour un nouveau fil de discussion ? Comme vous l'avez commenté, les détails manquent de l'auteur pour que nous puissions approfondir la question à l'heure actuelle.

0 votes

Merci pour les réponses et l'aide jusqu'à présent. Définir le nom d'hôte avec scutil fonctionne comme solution de contournement. Bien sûr, je serais intéressé à trouver une solution plus générale. Il est tout à fait possible que le problème implique le proxy DNS de la fritzbox. Je suis heureux de fournir toute information supplémentaire nécessaire. Si c'est effectivement le cas, que la fritzbox est le coupable ici, je suis également prêt à modifier la question initiale pour refléter cela!

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