536 votes

Comment changer le nom d'hôte sans redémarrage ?

Je veux changer le nom d'hôte du système d'exploitation mais je ne veux pas redémarrer.

J'ai édité /etc/hostname mais elle nécessite un redémarrage pour être mise en œuvre. Comment éviter cela ?

3 votes

Attention : ne fonctionnera pas avec Ubuntu 18+ qui exécute cloud-init par défaut, qui contrôle le nom d'hôte au démarrage.

0 votes

@nslntmnx, Merci !

677voto

Anonymous Penguin Points 111

C'est très simple. Il suffit de cliquer sur l'icône représentant une roue dentée (située dans le coin supérieur droit de l'écran), d'ouvrir l'écran "À propos de cet ordinateur" (situé sur l'icône représentant une roue dentée) et de modifier le "Nom du périphérique".

Ou, dans un terminal, utilisez la commande suivante :

sudo hostname your-new-name

Ceci définira le nom d'hôte à votre nouveau nom jusqu'à ce que vous redémarriez. Voir man hostname y Comment changer le nom de l'ordinateur ? pour de plus amples informations. Ne pas utiliser _ en votre nom.

Note

Après un redémarrage, vos modifications dans /etc/hostname sera utilisé, donc (comme vous l'avez dit dans la question), vous devriez quand même utiliser

sudo -H gedit /etc/hostname

(ou un autre éditeur) pour que ce fichier contienne le nom d'hôte.

Pour vérifier que le fichier est correctement configuré, exécutez :

sudo service hostname start

Vous devez également modifier /etc/hosts et changez la ligne qui dit :

127.0.1.1     your-old-hostname

afin qu'il contienne maintenant votre nouveau nom d'hôte. (Ceci est nécessaire, sinon de nombreuses commandes cesseront de fonctionner).

6 votes

Je ne veux pas redémarrer

25 votes

Je sais. C'est pourquoi vous devez utiliser la commande 'hostname'. Je voulais juste préciser que la commande 'hostname' ne change le nom de l'hôte que jusqu'à ce que vous redémarriez/crashiez/etc. Ensuite, le nom sera de nouveau lu dans le fichier.

1 votes

Merci. Cela signifie qu'après avoir changé le nom d'hôte, nous devons redémarrer, n'est-ce pas ?

305voto

muru Points 180007

Ubuntu 13.04 et suivantes

El hostnamectl fait partie de l'installation par défaut des éditions Desktop et Server.

Il combine la définition du nom d'hôte via l'option hostname commande et édition /etc/hostname . En plus de définir le nom d'hôte statique, il peut définir le "joli" nom d'hôte, qui n'est pas utilisé dans Ubuntu. Malheureusement, l'édition de /etc/hosts doit toujours être fait séparément.

hostnamectl set-hostname new-hostname

Cette commande fait partie de la systemd-services (qui, à partir d'Ubuntu 14.04, comprend également le paquet timedatectl y localectl commandes). Comme Ubuntu migre vers systemd cet outil est l'avenir.

1 votes

Notez que cela n'est pas disponible partout. Je viens de regarder sur mon installation Ubuntu 14.04 LTS ARM-7, et hostnamectl n'existe pas. Je suppose que certaines versions d'Ubuntu n'utilisent pas encore systemd.

1 votes

@Stéphane les commandes font partie de la suite systemd, mais elles sont disponibles indépendamment. Dans ce cas, 13.04-14.10 n'utilisent pas systemd comme init, par la commande est disponible.

0 votes

@muru, vous montrez que 2 éléments sont nécessaires : l'édition de /etc/hosts et en invoquant hostnamectl . Je pense qu'il devrait y avoir un 3ème élément qui serait similaire à export HOSTNAME=xxx . L'ordre peut également avoir de l'importance. J'ai des problèmes pour invoquer sudo si l'ordre est mauvais. J'en déduis que sudo dépend de /etc/hosts il est donc préférable de faire celle-là en premier si l'une des deux autres opérations requiert sudo .

64voto

Kevin Points 454

Sans redémarrage

Changer le nom d'hôte ou le nom de l'ordinateur dans ubuntu sans redémarrage

Modifiez le fichier /etc/hostname et remplacez-le par la nouvelle valeur,

nano /etc/hostname 

Modifiez le fichier /etc/hosts et remplacez l'ancienne ligne 127.0.1.1 par votre nouveau nom d'hôte.

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Note : je l'ai lu sur un forum > Editez /etc/hosts et changez l'ancienne ligne 127.0.1.1 par votre nouveau nom d'hôte (si vous ne le faites pas, vous ne pourrez plus utiliser sudo. Si vous l'avez déjà fait, appuyez sur ESC dans le menu Grub, choisissez recovery, et éditez votre fichier host avec les paramètres corrects).

Après un redémarrage, votre nom d'hôte sera celui que vous avez choisi.

Sans redémarrage

Pour changer sans redémarrage vous pouvez simplement utiliser hostname.sh après avoir modifié /etc/hostname. Vous devez conserver vos deux noms d'hôtes dans /etc/hosts (127.0.0.1 newhost oldhost) jusqu'à ce que vous exécutiez la commande ci-dessous :

sudo service hostname start

Note : Commande ci-dessus pour rendre le changement actif. Le nom d'hôte enregistré dans ce fichier (/etc/hostname) sera préservé au redémarrage du système (et sera défini en utilisant le même service).

0 votes

Sur Ubuntu 12.10, la dernière partie ne fonctionne pas avec le message d'erreur suivant sudo: unable to resolve host old-hostname . Pour cette partie, la solution de @jesperado fonctionne bien.

3 votes

Si vous ne mettez pas à jour /etc/hosts Dans le cas de la version 12.04.2 LTS, les choses commencent à se gâter, y compris l'application w commande, Apache, /sbin/reboot et bien plus encore. Assurez-vous de mettre à jour /etc/hosts

0 votes

Vous faites référence aux deux 127.0.0.1 para localhost y 127.0.1.1 pour un nom d'hôte personnalisé. N'est-ce pas ? Ensuite, vers la fin de votre réponse, pour une action sans rebot vous faites référence /etc/hosts y 127.0.0.1 newhost oldhost . Il n'y a donc pas besoin d'un 127.0.1.1 adresse ?

44voto

beetstra Points 2246

Le nom par défaut a été défini lors de l'installation d'Ubuntu. Vous pouvez facilement le changer pour ce que vous voulez, à la fois pour le bureau et le serveur, en modifiant les fichiers hosts et hostname. Voici comment procéder :

  1. Appuyez sur CtrlAltt sur le clavier pour ouvrir le terminal. Lorsqu'il s'ouvre, exécutez la commande ci-dessous : sudo hostname NEW_NAME_HERE

Cela changera le nom d'hôte jusqu'au prochain redémarrage. Le changement ne sera pas visible immédiatement dans votre terminal actuel. Démarrez un nouveau terminal pour voir le nouveau nom d'hôte.

  1. Pour changer le nom de façon permanente, exécutez la commande pour modifier les fichiers d'hôte :

    sudo -H gedit /etc/hostname y sudo -H gedit /etc/hosts

Pour le serveur Ubuntu sans interface graphique, exécutez sudo vi /etc/hostname y sudo vi /etc/hosts et les éditer un par un. Dans les deux fichiers, changez le nom en ce que vous voulez et enregistrez-les.

Enfin, redémarrez votre ordinateur pour appliquer les modifications.

20voto

spidersilk Points 11

Persistance du nom d'hôte de Cloud-init (Ubuntu 18+)

Alors que les approches ci-dessus ( hostnamectl , etc/hostname etc.) fonctionnent pour un changement de nom d'hôte immédiat, avec l'arrivée de cloud-init - qui peut contrôler la configuration du nom d'hôte - parmi beaucoup d'autres choses. Il ne sera donc pas conservé après un redémarrage si cloud-init est installé. Si vous voulez que la modification soit conservée après un redémarrage, vous devrez modifier le fichier fichiers de configuration de cloud-init désactiver la fonction module de configuration/mise à jour du nom d'hôte :

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

ou désactiver entièrement le cloud-init :

sudo touch /etc/cloud/cloud-init.disabled

1 votes

Veuillez voter en faveur de cette réponse. Cela a bien fonctionné pour moi. Les autres réponses ne fonctionnent pas avec l'adoption de cloud-init.

1 votes

@nslntmnx est-il installé par défaut sur le bureau 18.04, seulement sur le serveur ? L'ordinateur de bureau n'a pas /etc/cloud/cloud.cfg . Quel est le nom du paquet ? Juste cloud-init ?

1 votes

De plus, existe-t-il un moyen de changer le nom d'hôte avec cloud-init au lieu de simplement désactiver son remplacement ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X