Linux / Commande hostnamectl : consulter et changer le nom d’hôte

hostnamectl consulte et modifie le nom d'hôte et des informations associées sur les systèmes utilisant systemd et son service de noms d'hôtes. Le statut présente notamment les noms et des informations de système ; une modification peut viser seulement le nom statique ou plusieurs types de noms. Elle ne met pas automatiquement à jour vos enregistrements DNS, certificats et configurations d'applications.

Consulter les noms et le statut

hostnamectl status

Sans sous-commande, hostnamectl demande également le statut par défaut. Les informations disponibles peuvent comprendre le système d'exploitation, le noyau et l'architecture, ainsi que des identifiants : relisez une sortie avant de la partager.

Nom Rôle
Statique Nom configuré par l'administrateur et conservé dans la configuration locale.
Transitoire Nom de repli pouvant provenir de la configuration réseau. Un nom statique valide est prioritaire.
Pretty Nom de présentation destiné aux personnes, qui peut contenir des espaces et des caractères plus variés.

Pour lire séparément ces valeurs, utilisez les sélections suivantes :

hostnamectl --static
hostnamectl --transient
hostnamectl --pretty

Un nom pretty absent n'est pas nécessairement un défaut ; il n'est pas requis pour toute utilisation. Pour connaître la release du noyau sans ce résumé, uname fournit des champs dédiés.

Définir le périmètre avant une modification

Vérifiez la machine visée, les droits d'administration et les dépendances du nom : résolution locale, DNS, certificats, supervision et réglages des services. La présence du binaire ne garantit pas que le service systemd nécessaire soit accessible, notamment dans un conteneur ou un environnement minimal.

Le nom d'exemple web01.example.test représente un environnement de démonstration ; remplacez-le par le nom prévu pour votre machine. Pour un nom statique ou transitoire, le manuel impose un nom compatible avec les labels DNS et une longueur maximale de 64 caractères.

Avant de changer un système que vous administrez, relevez au moins les trois valeurs. Dans le même shell, vous pouvez les conserver ainsi, en interrompant la procédure si une lecture échoue :

old_static=$(hostnamectl --static) || exit 1
old_transient=$(hostnamectl --transient) || exit 1
old_pretty=$(hostnamectl --pretty) || exit 1

Ces variables ne survivent pas à la fermeture de ce shell. Conservez aussi votre relevé de changement dans un emplacement adapté si un retour ultérieur doit être possible. Il ne s'agit pas d'une sauvegarde des autres configurations de services.

Modifier explicitement le nom statique et vérifier

La commande suivante est une modification réelle du nom statique. Ne l'exécutez que sur la machine prévue et après le relevé initial :

sudo hostnamectl --static set-hostname web01.example.test

L'option --static limite ici la demande au nom statique. Sans sélection de type, une commande de changement de nom peut aussi modifier les noms pretty et transitoire ; ce n'est donc pas la même portée.

La forme historique set-hostname est encore présente dans le code officiel de systemd. Les versions récentes documentent également hostnamectl hostname NOM ; vérifiez la sous-commande disponible dans votre manuel local avant de choisir une syntaxe.

Après une réussite généralement silencieuse, relisez les valeurs :

hostnamectl --static
hostnamectl status

Le premier contrôle doit afficher web01.example.test dans cet exemple. Le statut permet de revoir l'ensemble ; des lignes peuvent être omises lorsque les noms sont identiques. Une invite de shell déjà ouverte peut conserver une ancienne présentation : ce n'est pas la mesure à utiliser seule pour conclure à l'échec.

Vérifiez séparément la résolution dont vos applications ont besoin. Par exemple, getent hosts web01.example.test consulte le chemin NSS configuré ; getent et les bases de noms expliquent sa portée. Le changement de nom local n'implique pas que ce nom soit déjà publié dans votre DNS.

Revenir au réglage initial et traiter les limites

Pour revenir sur la modification statique de cet exemple, dans le shell où la valeur a été enregistrée :

sudo hostnamectl --static set-hostname "$old_static"
hostnamectl --static

Si votre intervention a modifié d'autres types de noms, restaurez chacun avec la sélection correspondante et son propre relevé. Réappliquer un seul ancien nom aux trois types ne reproduit pas une configuration où ils différaient. Rétablissez aussi les réglages externes que vous auriez changés séparément.

Un échec peut venir des droits, du service de noms d'hôtes inaccessible ou d'une configuration en lecture seule. Lisez le diagnostic ; réinstaller simplement hostnamectl ou répéter une commande plus large ne résout pas nécessairement cette cause. Les images non démarrées et les environnements sans les services attendus nécessitent une méthode adaptée.

La documentation hostnamectl du projet systemd décrit les types et sélections. Le code officiel de hostnamectl conserve la sous-commande historique set-hostname ; le manuel installé reste la référence pour votre version.