web-dev-qa-db-fra.com

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

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

J'ai édité /etc/hostname mais cela nécessite un redémarrage pour être implémenté. Comment éviter cela?

490
Deepak Rajput

C'est facile. Cliquez simplement sur l'icône Gear (située dans le coin supérieur droit de l'écran), ouvrez l'écran "À propos de cet ordinateur" (situé sur l'icône Gear) et modifiez le "Nom du périphérique".

Ou, dans un terminal, utilisez la commande suivante:

Sudo hostname your-new-name

Cela définira le nom d'hôte sur votre-nouveau-nom jusqu'à ce que vous redémarriez. Voir man hostname et Comment changer le nom de l'ordinateur? pour plus d'informations. N'utilisez pas _ dans votre nom.

Remarque

Après un redémarrage, vos modifications dans /etc/hostname seront utilisées, donc (comme vous l'avez dit dans la question), vous devriez toujours 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 devriez également éditer /etc/hosts et changer la ligne qui se lit comme suit:

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.)

633
jasperado

Ubuntu à partir de 13.04

La commande hostnamectl fait partie de l'installation par défaut sur les éditions Desktop et Server.

Il combine la définition du nom d’hôte via la commande hostname et la modification de /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 /etc/hosts doit encore être effectuée séparément.

hostnamectl set-hostname new-hostname

Cette commande fait partie du paquet systemd-services (qui, à partir de Ubuntu 14.04, inclut également les commandes timedatectl et localectl). Au moment où Ubuntu migre vers systemd, cet outil est l’avenir.

276
muru

Sans redémarrage

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

Éditez/etc/hostname et passez à la nouvelle valeur,

nano /etc/hostname 

Modifiez/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> Éditez/etc/hosts et remplacez 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 Echap dans le menu contextuel, choisissez Récupération, puis modifiez votre fichier hôte avec les paramètres appropriés.

Maintenant, après un redémarrage, votre nom d'hôte sera le nouveau 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ôte dans/etc/hosts (newhost oldhost 127.0.0.1) jusqu'à l'exécution de la commande ci-dessous:

Sudo service hostname start

Note: Commande ci-dessus pour rendre la modification active. Le nom d'hôte enregistré dans ce fichier (/ etc/hostname) sera conservé lors du redémarrage du système (et sera défini à l'aide du même service).

62
One Zero

Le nom par défaut a été défini lors de l'installation d'Ubuntu. Vous pouvez facilement le changer en tout ce que vous voulez dans Desktop & Server en modifiant les fichiers hosts et hostname. Voici comment:

  1. Presse 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. La modification 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 éditer les fichiers de l'hôte:

    Sudo -H gedit /etc/hostname and Sudo -H gedit /etc/hosts

Pour un serveur Ubuntu sans interface graphique, exécutez Sudo vi /etc/hostname et Sudo vi /etc/hosts et modifiez-les un à un. Dans les deux fichiers, modifiez le nom de votre choix et enregistrez-le.

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

42
Mohsen Gh.

Voici un script qui modifie le nom d'hôte de la manière prescrite. Cela garantit que non seulement Sudo mais également les applications X11 continuent de fonctionner sans redémarrage requis.

Utilisation: Sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $Sudo_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
16
Lucas

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

Alors que les approches ci-dessus (hostnamectl, etc/hostname, etc.) fonctionnent pour un changement immédiat du nom d'hôte, avec l'avènement de cloud-init - qui peut contrôler la configuration du nom d'hôte, entre autres choses. Donc, cela ne collera pas après un redémarrage si cloud-init est installé. Si vous souhaitez que les modifications restent après un redémarrage, vous devrez éditer le fichier fichiers de configuration cloud-init , désactivez le paramètre cloud-init module de nom d'hôte/de mise à jour :

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

ou désactiver cloud-init entièrement:

Sudo touch /etc/cloud/cloud-init.disabled
12
Pierz

Sans redémarrage:

  1. changer le nom d'hôte dans /etc/hostname
  2. mettre à jour /etc/hosts en conséquence
  3. Sudo sysctl kernel.hostname=mynew.local.Host

Vérifiez votre nom d'hôte actuel avec hostname -f

12
Tombart

Pour obtenir votre nom d'hôte actuel:

cat /etc/hostname

Cela peut être changé dans n’importe quel éditeur de texte. Vous devrez également mettre à jour une entrée autre que localhost avec 127.0.0.1 dans/etc/hosts.

7
tagMacher

La réponse classique à la question de l'affiche originale est qu'une fois que vous avez modifié /etc/hostname, vous faites en sorte qu'il s'applique sans redémarrer en exécutant hostname (1) avec l'option -F (--file) en tant que racine:

Sudo hostname -F /etc/hostname

Le nomhôte (5) manipule avec /etc/hostname et ledit programme est le même dans Debian et ses dérivés depuis plus de vingt ans maintenant, et le paquet le fournissant a été marqué - essentiel et obligatoire , et les scripts d'initialisation IIRC utilisent littéralement la même chose depuis des décennies (/etc/init/hostname.conf le contient toujours), je dois donc dire que je suis vraiment perplexe de ne pas avoir mentionné cela déjà :)

4
Josip Rodin
  1. Remplacez le contenu de /etc/hostname par le nom d'hôte souhaité (vous pouvez l'éditer avec Sudo nano /etc/hostname)
  2. Dans /etc/hosts, remplacez l'entrée à côté de 127.0 .1. 1 par le nom d'hôte souhaité (vous pouvez éditer avec Sudo nano /etc/hosts).
  3. Exécuter Sudo service hostname restart; Sudo service networking restart
4
George

Ubuntu 16.04

Ceci est sans redémarrage et sans utilisation de terminal.

  • Allez à Paramètres système -> Détails.
  • Le voilà. À côté de nom de l'appareil, il y a une zone de texte.
  • Modifier la zone de texte et fermer la fenêtre.

Terminal ouvert. Voyez vous-même.

(Pour les versions plus anciennes, la zone de texte n'est pas modifiable.)

4
shonku

J'ai lu les réponses, mais je pense que vous recherchez probablement ceci:

Il suffit d’exécuter ces deux commandes après avoir édité le fichier /etc/hostname.

$ Sudo service hostname restart
$ exec bash

C'est tout. Pas besoin de redémarrer. Assurez-vous également de changer le nom dans le fichier /etc/hosts.

3
Raman
Sudo hostname your-new-name
Sudo /etc/init.d/networking restart

Cela devrait faire le travail je pense

3
OmarQunsul

Ubuntu 16.04

Solution basée sur réponse de DigitalOcean Comunity.

Éditez le fichier hôtes .

$ Sudo nano /etc/hosts

Remplacez oldname par un nouveau.

127.0.0.1 localhost newname

Configurez le nouveau nom d'hôte.

$ Sudo hostnamectl set-hostname newname

2
Jekis