169 votes

Le nom de l'ordinateur sous OS X ne correspond pas à ce qui est affiché sur le terminal

Le nom de mon ordinateur dans Préférences système > Partage est défini sur "archos", mais il s'affiche comme "iphone" sur le terminal. J'ai commencé à faire cela après avoir chargé Xcode pour développer l'iPhone :

Last login: Mon Nov  7 14:46:55 on ttys001
iphone:~ travis$ 

Une idée de la cause de ce problème ?

0 votes

Qu'obtenez-vous lorsque vous tapez echo $HOSTNAME

2 votes

C'est bizarre... Je reçois 'archos.local' pour echo $HOSTNAME. J'ai fait l'écriture initiale lorsque j'étais au bureau, mais sur mon réseau domestique, tout est redevenu normal. Je me demande si cela n'a pas quelque chose à voir avec mon réseau professionnel ?

2 votes

C'est tellement étrange qu'Apple l'ait fait de cette façon. Cela donne l'impression que le système est compromis alors qu'il ne l'est peut-être pas.

134voto

l'L'l Points 8737

Il est tout à fait normal que cela se produise ; lorsque vous vous connectez au terminal à distance, bash effectue une recherche DNS inverse. Le problème ne se posera que si le nom d'hôte n'est pas spécifié sur le réseau à partir duquel vous vous connectez et qu'il n'y a pas de réponse du serveur DHCP, ou si la recherche inverse sur le serveur DNS distant n'aboutit pas.

Vous pouvez facilement remplacer le paramètre par défaut en utilisant cette commande dans le Terminal :

sudo scutil --set HostName archos

Vous pouvez le vérifier en utilisant :

nslookup nn.nn.nn.nn

( ou )

host nn.nn.nn.nn

(où nn signifie l'adresse IP de votre Mac)

0 votes

Comment pouvez-vous défaire ça ?

9 votes

@Gio Supprimez la clé HostName sous System de /Library/Preferences/SystemConfiguration/preferences.plist. Voir cette réponse .

5 votes

@Gio : Le post de @Lauri contient d'excellentes informations de base, mais si vous voulez un raccourci : pour supprimer, exécutez sudo scutil --set HostName '' .

77voto

Jeffrey J. Hoover Points 741

Il y a quelques commentaires utiles sous cette réponse que vous pourriez vouloir lire en premier.

Allez dans Préférences système -> Partage et mettez à jour le nom de votre ordinateur.

Ensuite, dans le Terminal, vous pouvez afficher les paramètres via :

sudo scutil --get ComputerName
sudo scutil --get LocalHostName
sudo scutil --get HostName

Vous pouvez également modifier les valeurs à l'aide du bouton scutil commandement :

sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"

7 votes

En changeant le nom dans Préférences système->Partage, puis en utilisant la fonction scutil pour fixer HostName les deux ComputerName y LocalHostName étaient déjà réglés sur le nouveau nom pour moi (dans Mavericks). Il est bon de savoir que ces autres paramètres existent, cependant.

3 votes

@JimStewart : En effet, c'est pourquoi il est préférable de ne JAMAIS fixer HostName car cette valeur persistera même si vous essayez ensuite de changer votre nom d'hôte par le biais de l'option Préférences du système . Inversement, le LocalHostName est ramassé par l'obus et hostname donc HostName n'est jamais nécessaire.

0 votes

Dans mon cas, la valeur de LocalHostName était incorrecte. Exécution de sudo scutil --set LocalHostName '' a supprimé LocalHostName et maintenant mon invite utilise ComputerName, qui a la valeur correcte.

18voto

Felix Andersen Points 604

Il y a deux raisons possibles pour l'obus ( $HOSTNAME variable, '\h' sur $PS1 ) et le hostname pour signaler un nom d'hôte qui diffère de celui affiché dans System Preferences > Sharing :

  • sudo scutil --set HostName newName a été utilisé pour changer de façon persistante le nom d'hôte - malheureusement, cette valeur est indépendant de la LocalHostName valeur définie par les préférences du système en coulisses - même si man hostname suggère cette méthode, NE L'UTILISEZ PAS pour cette raison ; exécuter sudo scutil --set HostName '' pour l'enlever et à ce moment-là LocalHostName devrait à nouveau être signalé ; pour le contexte, voir ce poste par @Lauri Ranta.

  • [ Mise à jour : ce qui suit n'est plus vrai à partir de OSX 10.10 Si votre /etc/hosts contient une entrée qui correspond à l'adresse IP de votre machine, que Le nom de l'entrant sera signalé.

Ce n'est que si aucune des deux situations ci-dessus n'est vraie que la coquille et le hostname reflètent la valeur définie dans les préférences du système.


Si vous voulez changer votre nom d'hôte à partir du shell , courir les deux des éléments suivants :

  • sudo scutil --set LocalHostName <newName>
  • sudo scutil --set ComputerName <newFriendlyName>

<newFriendlyName> peut être une version plus conviviale (espaces, ponctuation) de <newName> (alphanumériques et tirets uniquement).

0 votes

Malheureusement, le fait de régler ces deux éléments ne semble pas suffire dans mon cas : gist.github.com/rdp/71d5368087b94b5ea55a

0 votes

@rogerdpack : Et tu as couru sudo scutil --set HostName '' d'abord (le cas importe) et s'est assuré qu'il n'y a pas d'entrée dans /etc/hosts ? scutil --get HostName devrait signaler Hostname: not set .

0 votes

Oui, scutil --get HostName HostName: not set /etc/hosts semble bénin...

8voto

Danger14 Points 1859

En plus de Le conseil de Jeffrey J. Hoover (ci-dessus) ,

J'ajouterais ces deux dernières étapes :

  • Videz le cache DNS en tapant : dscacheutil -flushcache
  • Redémarrez votre Mac.

7voto

user67806 Points 51

Je suis d'accord que le conseil de Jeffrey Hoover était la bonne réponse. Vider le cache DNS et redémarrer le Mac est également une bonne chose. Ceci est une variante de la réponse de Jeff Hoover :

sudo -i
Password:

for n in HostName ComputerName LocalHostName; do
    scutil --set $n new_hostname
done

exit

2 votes

Il vous manque un - : il doit être --set pour travailler. De plus, comme je l'ai commenté dans la réponse de Jeff : il est probablement préférable de ne pas définir le paramètre HostName .

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