Commande hostname sous Linux

Linux 命令大全Référence complète des commandes Linux


Qu'est-ce qu'un nom d'hôte

Un nom d'hôte est un nom unique qui identifie un ordinateur sur un réseau. Tout comme chaque personne a son propre nom, chaque ordinateur a également besoin d'un nom unique pour être identifié sur le réseau.

Dans les systèmes Linux, le nom d'hôte est utilisé pour :

  • Identifier l'ordinateur local
  • Identifier les appareils lors de la communication réseau
  • Affecter le fonctionnement de certains services réseau
  • S'afficher dans l'invite du terminal

Les noms d'hôtes sont généralement divisés en trois types :

  1. Nom d'hôte statique: stocké dans le fichier de configuration, reste inchangé après un redémarrage du système
  2. Nom d'hôte transitoire: défini temporairement à l'exécution, devient invalide après redémarrage
  3. Nom d'hôte joli: un nom descriptif qui peut contenir des caractères spéciaux (comme "My Laptop")

Syntaxe de base de la commande hostname

Le format d'utilisation de base de la commande hostname est le suivant :

hostname [选项] [新主机名]

S'il est exécuté directement sans aucun paramètre, lahostnamecommande affichera le nom d'hôte du système actuel :

Exemples

$ hostname
ubuntu-server

Options courantes et descriptions des paramètres

La commande hostname prend en charge plusieurs options pour afficher et définir différents types de noms d'hôte :

Option Description
-a, --alias Afficher l'alias de l'hôte (si un alias a été défini)
-A, --all-fqdns Afficher le FQDN (nom de domaine pleinement qualifié) de toutes les interfaces réseau
-b, --boot Si le nom d'hôte n'est pas défini, utilisez le nom d'hôte par défaut
-d, --domain Afficher le nom de domaine DNS
-f, --fqdn, --long Afficher le FQDN (nom de domaine pleinement qualifié)
-F, --file Lire le nom d'hôte à partir du fichier spécifié
-i, --ip-address Afficher l'adresse IP de l'hôte
-I, --all-ip-addresses Afficher les adresses IP de toutes les interfaces réseau
-s, --short Afficher le nom d'hôte court (avec la partie domaine supprimée)
-y, --yp, --nis Afficher le nom de domaine NIS

Trois façons de définir le nom d'hôte

1. Définir temporairement le nom d'hôte (devient invalide après redémarrage)

Exemple

sudo hostname new-hostname

Exemple :

Exemple

$ sudo hostname test-server
$ hostname
test-server

Remarque : le nom d'hôte défini par cette méthode reviendra au nom d'hôte d'origine après un redémarrage du système.

2. Définir définitivement le nom d'hôte (modifier le fichier de configuration)

Sur la plupart des distributions Linux modernes (utilisant systemd), vous pouvez modifier définitivement le nom d'hôte comme ceci :

Exemple

sudo hostnamectl set-hostname new-hostname

Exemple :

Exemple

$ sudo hostnamectl set-hostname production-server

Cette commande modifiera les deux :

  • /etc/hostnamele fichier
  • le nom d'hôte statique du système

3. Modifier manuellement le fichier de configuration

Vous pouvez également modifier directement le fichier de configuration du nom d'hôte :

  1. Modifiez le/etc/hostnamefichier :

    sudo nano /etc/hostname

    Supprimez le contenu d'origine et saisissez uniquement le nouveau nom d'hôte

  2. Mettez à jour le/etc/hostsfichier, en vous assurant qu'il y a une ligne associant le nom d'hôte à 127.0.0.1 :

    127.0.0.1   localhost new-hostname
    
  3. Appliquez les modifications (aucun redémarrage requis) :

    sudo systemctl restart systemd-hostnamed

Affichage des différents types de noms d'hôte

Afficher le nom d'hôte statique

Exemple

hostnamectl --static
# ou
cat /etc/hostname

Afficher le nom d'hôte transitoire

Exemple

hostname
# ou
hostnamectl --transient

Afficher le nom d'hôte convivial

Exemple

hostnamectl --pretty

Afficher le FQDN (nom de domaine pleinement qualifié)

Exemple

hostname -f
# ou
hostnamectl --fqdn

Exemples d'applications pratiques

Exemple 1 : Afficher les informations complètes sur l'hôte du système actuel

Exemple

$ hostnamectl
   Nom d'hôte statique : ubuntu-server
         Nom de l'icône : computer-vm
           Châssis : vm
        ID machine : 1a2b3c4d5e6f7g8h9i0j
           ID d'amorçage : 1k2l3m4n5o6p7q8r9s0t
    Virtualisation : kvm
  Système d'exploitation : Ubuntu 20.04 LTS
            Noyau : Linux 5.4.0-42-generic
      Architecture : x86-64

Exemple 2 : Définir à la fois le nom d’hôte statique et le joli nom d’hôte

Exemple

sudo hostnamectl set-hostname "server01" --pretty "Serveur Web Principal"

Exemple 3 : Obtenir les informations sur le nom d’hôte via le réseau

Exemple

$ hostname -i
192.168.1.100

$ hostname -I
192.168.1.100 10.0.0.100

Problèmes courants et solutions

Problème 1 : Le nom d’hôte ne prend pas effet après avoir été défini

Solution:

  1. Veillez également à mettre à jour le/etc/hostsfichier
  2. Vérifiez si d’autres services (tels que NetworkManager) ne remplacent pas les paramètres du nom d’hôte
  3. Essayez de redémarrer le système ou d’exécuter :
    sudo systemctl restart systemd-hostnamed

Problème 2 : Le nom d’hôte contient des caractères illégaux

Solution:

  • Un nom d’hôte ne peut contenir que :
    • Lettres a-z
    • Chiffres 0-9
    • Traits d’union (-)
  • Ne peut pas commencer ni se terminer par un trait d’union
  • La longueur est généralement limitée à 63 caractères

Problème 3 : Les services réseau ne peuvent pas reconnaître le nouveau nom d’hôte

Solution:

  1. Redémarrez les services réseau associés :
    sudo systemctl restart networking
  2. Videz le cache DNS (le cas échéant)
  3. Assurez-vous que le serveur DNS a été mis à jour (s’il s’agit d’un serveur sur le réseau)

Suggestions de bonnes pratiques

  1. Conventions de nommage:

    • Utilisez des noms significatifs, tels que « web-prod-01 » ou « db-backup-02 »
    • Évitez d’utiliser des caractères spéciaux et des traits de soulignement
    • Maintenez la cohérence, en particulier dans les clusters de serveurs
  2. Environnements à noms d’hôte multiples:

    • Utilisez le nom d’hôte statique comme identifiant principal
    • Utilisez le nom d’hôte convivial pour fournir une description lisible par l’humain
    • Utiliser/etc/hostspour ajouter des alias aux serveurs importants
  3. Gestion automatisée:

    • Dans les environnements cloud, vous pouvez utiliser cloud-init pour définir automatiquement les noms d'hôte
    • Gérer les noms d'hôte en masse à l'aide d'outils de gestion de configuration (comme Ansible)
  4. Documentation:

    • Tenir à jour une documentation qui associe les noms d'hôte aux rôles des serveurs
    • Utiliser les noms d'hôte comme identifiants dans les systèmes de supervision

Résumé

hostname est un concept de base mais important dans l'administration des systèmes Linux. Grâce à cet article, vous devriez avoir appris :

  1. Comment afficher et définir différents types de noms d'hôte
  2. Le processus correct pour modifier définitivement le nom d'hôte
  3. Solutions aux problèmes courants liés aux noms d'hôte
  4. Bonnes pratiques pour la gestion des noms d'hôte

Rappelez-vous : avant de modifier le nom d'hôte d'un environnement de production, veillez à évaluer l'impact possible. En particulier dans les environnements en cluster, les changements de nom d'hôte peuvent affecter la découverte de services et les systèmes de supervision.

Linux 命令大全Référence complète des commandes Linux

Autres extensions