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, merci!
MiB
Réponses:
642
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:
Je connais. c'est pourquoi vous devriez utiliser la commande 'hostname'. Je voulais juste préciser que la commande 'hostname' ne change le nom d’hôte que jusqu’à ce que vous redémarriez / crash / etc. Ensuite, il lira à nouveau le nom du fichier.
jasperado
5
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
19
Notez que vous devez également changer le /etc/hosts(voir autres réponses)
JB.
9
En bref, bien hostnameque le nouveau nom prenne effet immédiatement, il n’est pas "permanent" à moins que vous ne changiez également /etc/hostnameet /etc/hosts, puisque ce sont les fichiers qui seront lus après un redémarrage ou un blocage, vous ne pouvez bien sûr pas être connecté. attendre à l'avance.
Tim Parenti
280
Ubuntu à partir de 13.04
La hostnamectlcommande 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 hostnamecommande et l'é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, la modification /etc/hostsdoit encore être effectuée séparément.
hostnamectl set-hostname new-hostname
Cette commande fait partie du systemd-servicespaquetage (qui, à partir d’Ubuntu 14.04, inclut également les commandes timedatectlet localectl). Ubuntu migrant vers systemd, cet outil est l'avenir.
Notez que ce n'est pas disponible partout. Je viens de regarder sur mon installation Ubuntu 14.04 LTS ARM-7 et hostnamectlça n'existe pas. Je suppose que certaines versions d’Ubuntu n’utilisent pas encore systemd.
Stéphane
1
@ 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
1
@ H2ONaCl la variable shell est définie au démarrage, ouvrez simplement un autre shell et la variable hostname devrait convenir. Pour ce qui est de sudo, l’erreur concernant la résolution du nom d’hôte ne m’a jamais empêchée de faire quoi que ce soit.
muru
1
@ H2ONaCl ah, mais la variable HOSTNAME n'est pas standard - IIRC dash et ksh ne l'ont pas, zsh utilise HOST, aussi loin que les variables de shell disparaissent, c'est le fond du tas.
Muru
3
Fonctionne toujours sous Ubuntu 18.04 LTS.
LucaM
63
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
Remarque : je l'ai lu sur un forum> Modifiez / etc / hosts et changez 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 la touche Echap du menu de menu, choisissez Récupération et 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émarrer , vous pouvez simplement utiliser hostname.sh après avoir édité / 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
Remarque : 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).
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
3
Si vous ne mettez pas à jour /etc/hosts, les choses commencent à échouer sur 12.04.2 LTS, y compris la wcommande, Apache, /sbin/rebootet bien plus encore. Assurez-vous de mettre à jour/etc/hosts
Josh
Vous faites référence à la fois 127.0.0.1pour localhostet 127.0.1.1pour un nom d’hôte personnalisé. Droite? Puis, vers la fin de votre réponse, pour une action sans rebot , vous référencez /etc/hostset 127.0.0.1 newhost oldhost. Donc, il n'y a pas besoin d'une 127.0.1.1adresse?
Nikos Alexandris
1
n'a pas fonctionné pour moi. Je devais utiliser sudo nano /etc/hostspour que le changement prenne effet; sans sudo, nano /etc/hosts
ça
2
Quelle est la différence entre redémarrer et redémarrer?
tempête
43
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:
Appuyez CtrlAlttsur 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.
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 et sudo -H gedit /etc/hosts
Pour un serveur Ubuntu sans interface graphique, exécutez sudo vi /etc/hostname-les sudo vi /etc/hostset 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.
Voici un script qui modifie le nom d'hôte de la manière prescrite. Cela garantit que non seulement sudoles applications X11 mais également celles-ci continuent de 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}')"
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}')"? Juste curieux.
Fr0zenFyr
4
@ Fr0zenFyr: il 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). awkMet ensuite des guillemets autour du premier argument xauth addcar xauthles formats d’entrée et de sortie ne sont pas symétriques.
Lucas
Merci pour l'explication. J'ai toujours redémarré pour que les modifications prennent effet. +1
Fr0zenFyr
@trakz: En réalité, 127.abc, quel que soit le nombre, est localhost conformément au RFC de l'IETF. (la plupart des gens ne le savent tout simplement pas, mais comme la plupart ne le savent pas, les modifications sont approuvées)
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 CT dans Proxmox.
Pablo Un
14
Persistance du nom d'hôte Cloud-init (Ubuntu 18+)
Alors que les approches ci - dessus ( hostnamectl, etc/hostname, etc.) travaillent pour le changement de nom d'hôte immédiat, avec l'avènement du cloud-init - qui peut contrôler réglage du nom d' hôte - amoungst beaucoup d' 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 devez éditer les fichiers de configuration de cloud-init , désactivez le module set / update du nom d' hôte de cloud-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
S'il vous plaît upvote cette réponse. Cela a bien fonctionné pour moi. D'autres réponses ne fonctionnent pas avec l'adoption de cloud-init.
nslntmnx
@nslntmnx est-il installé par défaut sur le bureau 18.04, uniquement sur le serveur? Bureau n'a pas /etc/cloud/cloud.cfg. Quel est le nom du paquet? Juste cloud-init?
Ciro Santilli a annoncé le
1
En outre, y a-t-il un moyen de changer le nom d'hôte avec cloud-init au lieu de simplement désactiver son remplacement?
Ciro Santilli a annoncé le
1
Oui, vous pouvez modifier de nombreux paramètres à l'aide de cloud-init - voir le lien "docs" dans ma réponse - voici un lien pour définir le nom d'hôte: cloudinit.readthedocs.io/en/latest/topics/…
Pierz
7
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.
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 êtes-vous sûr de cela? Je vois dans le fichier cloud-config.txt que # 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 pas Ubuntu 18, je ne peux donc pas le tester avant le week-end.
George
4
Ubuntu 16.04
Ceci est sans redémarrage et sans utilisation de terminal.
Allez dans Paramètres système -> Détails .
Le voilà. À côté du 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.)
La réponse classique à la question de l'affiche originale est que, une fois que vous l'avez modifiée /etc/hostname, vous la faites appliquer sans redémarrer en exécutant hostname (1) avec l' option -F( --file) en tant que root:
sudo hostname -F /etc/hostname
Le nom d' hôte (5) AGILITY avec /etc/hostnameet ledit programme a été le même dans Debian et ses dérivés depuis plus de vingt ans, et le paquet fournissant a été marqué essentielle et nécessaire , et IIRC les scripts d'initialisation ont littéralement utilisé la même chose pour décennies (le /etc/init/hostname.confcontient toujours), je dois donc dire que je suis vraiment perplexe que personne ne l’ait déjà mentionné :)
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 erm, quoi? Quelle nouvelle dépendance Ubuntu 18 a-t-elle introduite pour intégrer cloud-init par défaut? Vous pensez peut-être à des images personnalisées en nuage, auquel cas il ne devrait pas être surprenant qu'elles utilisent des outils de provisioning de nuage personnalisés.
Réponses:
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:
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. Ne pas utiliser_
en votre nom.Remarque
Après un redémarrage, vos modifications
/etc/hostname
seront utilisées, donc (comme vous l'avez dit dans la question), vous devriez toujours utiliser(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:
Vous devriez également éditer
/etc/hosts
et changer la ligne qui se lit comme suit:afin qu'il contienne maintenant votre nouveau nom d'hôte. (Ceci est nécessaire sinon de nombreuses commandes cesseront de fonctionner.)
la source
/etc/hosts
(voir autres réponses)hostname
que le nouveau nom prenne effet immédiatement, 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 blocage, vous ne pouvez bien sûr pas être connecté. attendre à l'avance.Ubuntu à partir de 13.04
La
hostnamectl
commande 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
hostname
commande et l'é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, la modification/etc/hosts
doit encore être effectuée séparément.Cette commande fait partie du
systemd-services
paquetage (qui, à partir d’Ubuntu 14.04, inclut également les commandestimedatectl
etlocalectl
). Ubuntu migrant verssystemd
, cet outil est l'avenir.la source
hostnamectl
ça n'existe pas. Je suppose que certaines versions d’Ubuntu n’utilisent pas encore systemd.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,
Modifiez / etc / hosts et remplacez l'ancienne ligne 127.0.1.1 par votre nouveau nom d'hôte.
Remarque : je l'ai lu sur un forum> Modifiez / etc / hosts et changez 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 la touche Echap du menu de menu, choisissez Récupération et 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émarrer , vous pouvez simplement utiliser hostname.sh après avoir édité / 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:
Remarque : 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).
la source
sudo: unable to resolve host old-hostname
. Pour cette partie, la solution @jesperado fonctionne bien./etc/hosts
, les choses commencent à échouer sur 12.04.2 LTS, y compris law
commande, Apache,/sbin/reboot
et bien plus encore. Assurez-vous de mettre à jour/etc/hosts
127.0.0.1
pourlocalhost
et127.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 référencez/etc/hosts
et127.0.0.1 newhost oldhost
. Donc, il n'y a pas besoin d'une127.0.1.1
adresse?sudo nano /etc/hosts
pour que le changement prenne effet; sans sudo,nano /etc/hosts
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:
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.
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
etsudo -H gedit /etc/hosts
Pour un serveur Ubuntu sans interface graphique, exécutez
sudo vi /etc/hostname
-lessudo 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.
la source
Voici un script qui modifie le nom d'hôte de la manière prescrite. Cela garantit que non seulement
sudo
les applications X11 mais également celles-ci continuent de fonctionner sans redémarrage requis.Usage:
sudo ./change_hostname.sh new-hostname
la source
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
? Juste curieux.xauth list
) et remplace l'ancien nom d'hôte par le nouveau nom d'hôte (sed
).awk
Met ensuite des guillemets autour du premier argumentxauth add
carxauth
les formats d’entrée et de sortie ne sont pas symétriques.Sans redémarrage:
/etc/hostname
/etc/hosts
conséquencesudo sysctl kernel.hostname=mynew.local.host
Vérifiez votre nom d'hôte actuel avec
hostname -f
la source
sudo: unable to resolve host oldname
,sysctl: setting key "kernel.hostname": Read-only file system
. Peut-être parce que c'est un CT dans Proxmox.Persistance du nom d'hôte Cloud-init (Ubuntu 18+)
Alors que les approches ci - dessus (
hostnamectl
,etc/hostname
, etc.) travaillent pour le changement de nom d'hôte immédiat, avec l'avènement du cloud-init - qui peut contrôler réglage du nom d' hôte - amoungst beaucoup d' 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 devez éditer les fichiers de configuration de cloud-init , désactivez le module set / update du nom d' hôte de cloud-init :ou désactiver cloud-init entièrement:
la source
/etc/cloud/cloud.cfg
. Quel est le nom du paquet? Justecloud-init
?Pour obtenir votre nom d'hôte actuel:
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.
la source
/etc/hostname
par le nom d'hôte souhaité (vous pouvez l'éditer avecsudo nano /etc/hostname
)/etc/hosts
, remplacez l'entrée à côté de 127.0. 1 .1 avec le nom d’hôte désiré (vous pouvez éditer avecsudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
la source
# 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 pas Ubuntu 18, je ne peux donc pas le tester avant le week-end.Ubuntu 16.04
Ceci est sans redémarrage et sans utilisation de terminal.
Terminal ouvert. Voyez vous-même.
(Pour les versions plus anciennes, la zone de texte n'est pas modifiable.)
la source
La réponse classique à la question de l'affiche originale est que, une fois que vous l'avez modifiée
/etc/hostname
, vous la faites appliquer sans redémarrer en exécutant hostname (1) avec l' option-F
(--file
) en tant que root:Le nom d' hôte (5) AGILITY avec
/etc/hostname
et ledit programme a été le même dans Debian et ses dérivés depuis plus de vingt ans, et le paquet fournissant a été marqué essentielle et nécessaire , et IIRC les scripts d'initialisation ont littéralement utilisé la même chose pour décennies (le/etc/init/hostname.conf
contient toujours), je dois donc dire que je suis vraiment perplexe que personne ne l’ait déjà mentionné :)la source
Cela devrait faire le travail je pense
la source
J'ai lu les réponses, mais je pense que vous recherchez probablement ceci:
Il suffit d’exécuter ces deux commandes après l’édition du
/etc/hostname
fichier.C'est tout. Pas besoin de redémarrer. Assurez-vous également de modifier le nom du
/etc/hosts
fichier.la source
/etc/hosts
(j'ai confirmé sur 14.04).Ubuntu 16.04
Solution basée sur la réponse de DigitalOcean Comunity.
Editer le fichier hosts .
$ sudo nano /etc/hosts
Remplacez oldname par new one.
127.0.0.1 localhost newname
Configurez le nouveau nom d'hôte.
$ sudo hostnamectl set-hostname newname
la source