Question Comment modifier 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 cela nécessite un redémarrage pour être implémenté. Comment éviter cela?


455
2017-12-14 08:56


origine


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


Réponses:


C'est facile. Cliquez simplement sur l'icône en forme d'engrenage (située dans le coin supérieur droit de l'écran), ouvrez l'écran "À propos de cet ordinateur" (situé dans l'icône Gear) et modifiez "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 à votre nouveau nom jusqu'à ce que vous redémarriez. Voir man hostname et Comment changer le nom de l'ordinateur? pour plus d'informations. Ne pas utiliser _ en votre nom

Remarque

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

sudo -H gedit /etc/hostname

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

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

sudo service hostname start

Vous devriez également modifier /etc/hosts et changez la ligne qui se lit comme suit:

127.0.1.1     your-old-hostname

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


593
2017-12-14 10:27



je ne veux pas redémarrer - Deepak Rajput
Je connais. c'est pourquoi vous devez utiliser la commande 'hostname'. Je voulais juste préciser que la commande 'hostname' ne change que le nom d'hôte jusqu'à ce que vous redémarriez / plantiez / /. Ensuite, il relira le nom du fichier. - jasperado
Dépend. Si vous avez entré la commande, vous n'avez pas besoin de redémarrer. Le nom d'hôte est déjà changé. Mais seulement jusqu'à votre prochain redémarrage. - jasperado
Notez que vous devez également changer le /etc/hosts (voir les autres réponses) - JB.
En bref, bien que hostname provoquera l'effet du nouveau nom, il n'est pas "permanent" à moins que vous ne changiez également /etc/hostname et /etc/hosts, puisque ce sont les fichiers qui seront lus après un redémarrage ou un plantage, ce que vous ne pouvez bien entendu pas attendre à l'avance. - Tim Parenti


Ubuntu 13.04 et suivants

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

Il combine la définition du nom d’hôte via le 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 /etc/hosts doit encore être fait séparément.

hostnamectl set-hostname new-hostname

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


250
2017-08-27 21:03



Notez que ce n'est pas disponible partout. Il suffit de regarder sur mon installation Ubuntu 14.04 LTS ARM-7, et hostnamectl n'existe pas Je suppose que certaines saveurs d'Ubuntu n'utilisent pas encore systemd. - Stéphane
@ Stéphane les commandes font partie de la suite systemd, mais elles sont disponibles indépendamment. Dans ce cas, 13.04-14.10 n'utilisez pas systemd comme init, car la commande est disponible. - muru
@ H2ONaCl la variable shell est définie au démarrage, il suffit d'ouvrir un autre shell et la variable hostname devrait être correcte. En ce qui concerne sudo, l'erreur sur la résolution du nom d'hôte ne m'a jamais empêché de faire quoi que ce soit. - muru
@ H2ONaCl ah, mais la variablle HOSTNAME n'est pas standard - le tiret IIRC et ksh ne l'ont pas, zsh utilise HOST, donc en ce qui concerne les variables shell, c'est le bas du tas. - muru
Fonctionne toujours dans Ubuntu 18.04 LTS. - donlucacorleone


Sans redémarrer

Changer le nom d'hôte ou le nom d'ordinateur dans Ubuntu sans redémarrer

Editez / etc / hostname et changez pour 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

Remarque : je l'ai lu sur un forum> Editer / etc / hosts et changer l'ancienne ligne 127.0.1.1 en 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 ÉCHAP dans le menu grub, choisissez la récupération et modifiez votre fichier hôte dans les paramètres corrects)

Maintenant, après un redémarrage, votre nom d'hôte sera le nouveau que vous avez choisi

Sans redémarrage

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

sudo service hostname start

Remarque : Commande ci-dessus pour activer le changement. 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).


58
2018-02-13 20:16



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 @jesperado fonctionne bien. - Frédéric Grosshans
Si vous ne mettez pas à jour /etc/hosts, les choses commencent à échouer sur LTS 12.04.2, y compris le w commande, Apache, /sbin/reboot et beaucoup plus. Assurez-vous de mettre à jour /etc/hosts - Josh
Vous faites référence aux deux 127.0.0.1 pour localhost et 127.0.1.1 pour un nom d'hôte personnalisé. Droite? Puis, vers la fin de votre réponse, pour une action sans rebot, vous faites référence /etc/hosts et 127.0.0.1 newhost oldhost. Donc, il n'y a pas besoin d'un 127.0.1.1 adresse? - Nikos Alexandris
n'a pas fonctionné pour moi. je devais utiliser sudo nano /etc/hosts pour que le changement prenne effet; sans sudo, juste nano /etc/hosts n'a pas enregistré le changement - conman253
Quelle est la différence entre redémarrer et redémarrer? - storm


Le nom par défaut a été défini lors de l'installation d'Ubuntu. Vous pouvez facilement le modifier à votre guise à la fois dans Desktop et Server en éditant les fichiers hôte et nom d'hôte. 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. Le changement ne sera pas visible immédiatement dans votre terminal actuel. Démarrer un nouveau terminal pour voir le nouveau nom d'hôte.

  1. Pour changer le nom de manière permanente, exécutez la commande pour modifier les fichiers hôte:

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

Pour le serveur Ubuntu sans interface graphique, exécutez sudo vi /etc/hostname et sudo vi /etc/hosts et éditez-les 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.


42
2017-11-01 22:47





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

Usage: 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
2018-03-07 06:30



Que fait la dernière ligne du script su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')" faire? Juste curieux. - Fr0zenFyr
@ Fr0zenFyr: prend un jeton d'authentification X11 valide (xauth list) et remplace l'ancien nom d'hôte par le nouveau nom d'hôte (sed). alors awk met des citations autour du premier argument à xauth add car xauthLe format d'entrée et de sortie n'est pas symétrique. - Lucas
Merci pour l'explication. J'ai toujours redémarré pour que les modifications prennent effet. +1 - Fr0zenFyr
@trakz: En fait, 127.a.b.c, quel que soit le nombre, est tout localhost selon RFC IETF. (la plupart des gens ne le savent pas, mais la plupart ne le font pas, éditer approuvé) - Fabby


Sans redémarrage:

  1. changer le nom d'hôte en /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
2018-03-31 14:46



Avec 16.04, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Peut-être parce que c'est un scanner à l'intérieur de Proxmox. - Pablo Bianchi


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 l’entrée autre que localhost sur 127.0.0.1 dans / etc / hosts.


7
2017-09-14 01:12



Ou lancez simplement la commande "hostname" depuis la ligne de commande. - elomage


  1. Remplacer le contenu de /etc/hostname avec le nom d'hôte désiré (vous pouvez éditer avec sudo nano /etc/hostname)
  2. Dans /etc/hosts, remplacez l’entrée à côté de 127.0.1.1 avec le nom d'hôte désiré (vous pouvez éditer avec sudo nano /etc/hosts)
  3. Exécuter sudo service hostname restart; sudo service networking restart

4
2018-05-08 18:26



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. - nslntmnx
@nslntmnx en êtes-vous sûr? Je vois dans le cloud-config.txt # if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it. Je n'ai actuellement pas Ubuntu 18 donc je ne peux pas le tester avant le week-end. - George


Ubuntu 16.04

C'est sans redémarrer et sans utilisation de terminal.

  • Aller à 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 par vous-même.

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


4
2018-03-13 18:26





sudo hostname your-new-name
sudo /etc/init.d/networking restart

Cela devrait faire le travail je pense


3
2017-12-20 12:43



Je ne pense pas que cela survivra à un redémarrage - Collin Anderson
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. - nslntmnx


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

Exécutez simplement ces deux commandes après avoir édité le /etc/hostname fichier.

$ sudo service hostname restart
$ exec bash

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


3
2017-09-28 18:55



Contrairement à beaucoup d'autres réponses, cela ne met pas à jour /etc/hosts (J'ai confirmé le 14.04). - IsaacS
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. - nslntmnx