Warnung: Funktioniert nicht mit Ubuntu 18+, das standardmäßig cloud-init ausführt und den Hostnamen beim Booten steuert.
Nslntmnx
@nslntmnx, danke!
MiB
Antworten:
642
Es ist einfach. Klicken Sie einfach auf das Zahnradsymbol (in der oberen rechten Ecke des Bildschirms), öffnen Sie den Bildschirm "Über diesen Computer" (in dem Zahnradsymbol) und bearbeiten Sie den "Gerätenamen".
Oder verwenden Sie in einem Terminal den folgenden Befehl:
sudo hostname your-new-name
Dies setzt den Hostnamen auf Ihren neuen Namen, bis Sie neu starten. Siehe man hostnameund Wie ändere ich den Computernamen? Für weitere Informationen. Verwenden Sie nicht _in Ihrem Namen.
Hinweis
Nach einem Neustart werden Ihre Änderungen in /etc/hostnameverwendet, so dass Sie (wie in der Frage gesagt) weiterhin verwenden sollten
sudo -H gedit /etc/hostname
(oder einem anderen Editor), sodass diese Datei den Hostnamen enthält.
Um zu testen, ob die Datei korrekt eingerichtet ist, führen Sie Folgendes aus:
sudo service hostname start
Sie sollten auch /etc/hostsdie folgende Zeile bearbeiten und ändern:
127.0.1.1 your-old-hostname
so dass es jetzt Ihren neuen Hostnamen enthält. (Dies ist erforderlich, da sonst viele Befehle nicht mehr funktionieren.)
Ich weiß. Aus diesem Grund sollten Sie den Befehl 'hostname' verwenden. Ich wollte nur klarstellen, dass der Befehl 'hostname' den Hostnamen nur ändert, bis Sie / crash / etc neu starten. Danach liest es den Namen erneut aus der Datei.
Jasperado
5
Hängt davon ab. Wenn Sie den Befehl eingegeben haben, müssen Sie nicht neu starten. Der Hostname wurde bereits geändert. Aber nur bis zum nächsten Neustart.
Jasperado
19
Beachten Sie, dass Sie auch das ändern müssen /etc/hosts(siehe andere Antworten)
JB.
9
Kurz gesagt, obwohl hostnameder neue Name sofort wirksam wird, ist er nicht "permanent", es sei denn, Sie ändern ihn ebenfalls /etc/hostnameund /etc/hostsda dies die Dateien sind, die nach einem Neustart oder einem Absturz gelesen werden, ist dies möglicherweise nicht der Fall vorzeitig erwarten.
Tim Parenti
280
Ubuntu ab 13.04
Der hostnamectlBefehl ist Teil der Standardinstallation für Desktop- und Server-Editionen.
Es kombiniert das Einstellen des Hostnamens über den hostnameBefehl und das Bearbeiten /etc/hostname. Zusätzlich zum Festlegen des statischen Hostnamens kann der "hübsche" Hostname festgelegt werden, der in Ubuntu nicht verwendet wird. Die Bearbeitung /etc/hostsmuss leider noch separat erfolgen.
hostnamectl set-hostname new-hostname
Dieser Befehl ist Teil des systemd-servicesPakets (das ab Ubuntu 14.04 auch die Befehle timedatectlund enthält localectl). Während Ubuntu migriert, systemdist dieses Tool die Zukunft.
Beachten Sie, dass dies nicht überall verfügbar ist. Hab gerade meine Ubuntu 14.04 LTS ARM-7 Installation angeschaut und hostnamectlexistiert nicht. Vermutlich verwenden einige Ubuntu-Varianten systemd noch nicht.
Stéphane
1
@ Stéphane Die Befehle sind Teil der systemd-Suite, stehen jedoch unabhängig voneinander zur Verfügung. In diesem Fall 13.04-14.10 nicht als init systemd verwenden, da der Befehl zur Verfügung steht.
muru
1
@ H2ONaCl Die Shell-Variable wird beim Start gesetzt. Öffnen Sie einfach eine andere Shell und die Hostname-Variable sollte in Ordnung sein. Was sudo betrifft, hat mich der Fehler bei der Auflösung des Hostnamens nie daran gehindert, irgendetwas zu tun.
muru
1
@ H2ONaCl ah, aber die Variable HOSTNAME ist nicht Standard - IIRC dash und ksh haben sie nicht, zsh verwendet HOST, was Shell-Variablen anbelangt, ist dies der untere Teil des Heaps.
muru
3
Funktioniert immer noch in Ubuntu 18.04 LTS.
LucaM,
63
Ohne Neustart
Ändern des Hostnamens oder Computernamens in Ubuntu ohne Neustart
Bearbeiten Sie / etc / hostname und ändern Sie den neuen Wert.
nano /etc/hostname
Bearbeiten Sie / etc / hosts und ändern Sie die alte Zeile 127.0.1.1 in Ihren neuen Hostnamen
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Hinweis : Ich habe es in einem Forum> Edit / etc / hosts gelesen und die alte Zeile 127.0.1.1 in Ihren neuen Hostnamen geändert. Wenn Sie dies nicht tun, können Sie sudo nicht mehr verwenden. Wenn Sie es bereits getan haben , drücke ESC im Grub-Menü, wähle "Recovery" und bearbeite deine Host-Datei mit den richtigen Einstellungen.)
Nach einem Neustart ist Ihr Hostname der neue, den Sie ausgewählt haben
Ohne Neustart
Zum Ändern ohne Neustart können Sie einfach hostname.sh verwenden, nachdem Sie / etc / hostname bearbeitet haben. Sie müssen beide Hostnamen in / etc / hosts (127.0.0.1 newhost oldhost) belassen, bis Sie den folgenden Befehl ausführen:
sudo service hostname start
Hinweis : Über dem Befehl, um die Änderung zu aktivieren. Der in dieser Datei gespeicherte Hostname (/ etc / hostname) bleibt beim Neustart des Systems erhalten (und wird mit demselben Dienst festgelegt).
Unter Ubuntu 12.10 funktioniert der letzte Teil mit der folgenden Fehlermeldung nicht sudo: unable to resolve host old-hostname. Für diesen Teil funktioniert die @ jesperado-Lösung gut.
Frédéric Grosshans
3
Wenn Sie nicht aktualisieren /etc/hosts, schlagen die Mant-Dinge in 12.04.2 LTS fehl, einschließlich wBefehl, Apache /sbin/rebootund vielem mehr. Achten Sie darauf, zu aktualisieren/etc/hosts
Josh
Sie beziehen sich sowohl 127.0.0.1für localhostals auch 127.0.1.1für einen benutzerdefinierten Hostnamen. Richtig? Gegen Ende Ihrer Antwort verweisen Sie für eine Aktion ohne Rebot auf /etc/hostsund 127.0.0.1 newhost oldhost. Sie brauchen also keine 127.0.1.1Adresse?
Nikos Alexandris
1
hat bei mir nicht funktioniert. Ich musste verwenden, sudo nano /etc/hostsdamit die Änderung wirksam wurde. ohne sudo nano /etc/hostshabe
ich
2
Was ist der Unterschied zwischen Neustart und Neustart?
Sturm
43
Der Standardname wurde bei der Installation von Ubuntu festgelegt. Sie können es auf einfache Weise in Desktop und Server beliebig ändern, indem Sie die Hosts und Hostnamensdateien bearbeiten. Im Folgenden erfahren Sie, wie:
Drücken Sie CtrlAlttauf die Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus:sudo hostname NEW_NAME_HERE
Dadurch wird der Hostname bis zum nächsten Neustart geändert. Die Änderung ist in Ihrem aktuellen Terminal nicht sofort sichtbar. Starten Sie ein neues Terminal, um den neuen Hostnamen anzuzeigen.
Führen Sie den folgenden Befehl aus, um den Namen dauerhaft zu ändern:
sudo -H gedit /etc/hostname und sudo -H gedit /etc/hosts
Für Ubuntu Server ohne GUI laufen sudo vi /etc/hostnameund sudo vi /etc/hostsund bearbeiten Sie sie eins nach dem anderen. Ändern Sie in beiden Dateien den Namen in den gewünschten Namen und speichern Sie sie.
Starten Sie schließlich Ihren Computer neu, um die Änderungen zu übernehmen.
Hier ist ein Skript, das den Hostnamen auf die vorgeschriebene Weise ändert. Es stellt sicher, dass nicht nur sudoX11-Anwendungen, sondern auch X11-Anwendungen ohne Neustart weiter funktionieren.
Was macht die letzte Zeile im Skript su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"? Nur neugierig.
Fr0zenFyr
4
@ Fr0zenFyr: Es benötigt ein gültiges X11-Authentifizierungstoken ( xauth list) und ersetzt den alten Hostnamen durch den neuen Hostnamen ( sed). Dann awkAnführungszeichen um das erste Argument legt auf , xauth addweil xauth‚s Ein- und Ausgabeformat ist nicht symmetrisch.
Lucas
Danke für die Erklärung. Ich hatte immer einen Neustart durchgeführt, damit die Änderungen wirksam wurden. +1
Fr0zenFyr
@trakz: Tatsächlich ist 127.abc, unabhängig von der Nummer, alles localhost gemäß IETF-RFC. (Die meisten Leute wissen das einfach nicht, aber wie die meisten nicht, bearbeiten genehmigt)
Fabby
14
Ohne Neustart:
Ändern Sie den Hostnamen in /etc/hostname
aktualisieren /etc/hostsentsprechend
sudo sysctl kernel.hostname=mynew.local.host
Überprüfen Sie Ihren aktuellen Hostnamen mit hostname -f
Mit 16,04, Sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Vielleicht ist da ein CT in Proxmox.
Pablo A
14
Persistenz des Hostnamens von Cloud-init (Ubuntu 18+)
Während die oben genannten Ansätze ( hostnamectl, etc/hostnameusw.) für eine sofortige Änderung des Hostnamens funktionieren, kann Cloud-init unter anderem die Einstellung des Hostnamens steuern. Es bleibt also nach einem Neustart nicht hängen, wenn cloud-init installiert ist. Wenn Sie möchten, dass die Änderung nach einem Neustart erhalten bleibt, müssen Sie die Konfigurationsdateien von cloud-init bearbeiten. Deaktivieren Sie das Hostnamen-Set / Update-Modul von cloud-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
Bitte stimmen Sie dieser Antwort zu. Das hat bei mir super geklappt. Andere Antworten funktionieren mit der Einführung von Cloud-Init nicht.
Nslntmnx
@nslntmnx Wird es standardmäßig auf dem 18.04-Desktop installiert, nur auf dem Server? Desktop hat nicht /etc/cloud/cloud.cfg. Wie lautet der Paketname? Nur cloud-init?
Ciro Santilli新疆改造中心法轮功六四事件
1
Gibt es auch eine Möglichkeit, den Hostnamen mit cloud-init zu ändern, anstatt nur die Überschreibung zu deaktivieren?
Ciro Santilli新疆改造中心法轮功六四事件
1
Ja, Sie können viele Einstellungen mit cloud-init ändern - siehe den Link docs in meiner Antwort - hier ist ein Link zum Festlegen des Hostnamens: cloudinit.readthedocs.io/en/latest/topics/…
Pierz
7
So rufen Sie Ihren aktuellen Hostnamen ab:
cat /etc/hostname
Dies kann in jedem Texteditor geändert werden. Sie müssten auch einen anderen Eintrag als localhost gegen 127.0.0.1 in / etc / hosts aktualisieren.
Warnung: Funktioniert nicht mit Ubuntu 18+, das standardmäßig cloud-init ausführt und den Hostnamen beim Booten steuert.
Nslntmnx
@nslntmnx Bist du dir da sicher? Ich sehe in der cloud-config.txt, dass # 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.ich derzeit kein Ubuntu 18 habe, so dass ich es erst am Wochenende testen kann.
George
4
Ubuntu 16.04
Dies ist ohne Neustart und ohne Terminalbenutzung.
Gehen Sie zu Systemeinstellungen -> Details .
Da ist es. Neben dem Gerätenamen befindet sich ein Textfeld.
Bearbeiten Sie das Textfeld und schließen Sie das Fenster.
Terminal öffnen. Überzeugen Sie sich selbst.
(Bei älteren Versionen kann das Textfeld nicht bearbeitet werden.)
Die klassische Antwort auf die Frage des ursprünglichen Posters lautet, dass Sie nach dem Bearbeiten /etc/hostnamedie Anwendung ohne Neustart ausführen, indem Sie hostname (1) mit der Option -F( --file) als root ausführen:
sudo hostname -F /etc/hostname
Der Hostname (5) , der mit /etc/hostnameund mit dem genannten Programm umgeht , ist seit über zwanzig Jahren derselbe in Debian und seinen Derivaten, und das Paket, sofern es als wesentlich und erforderlich gekennzeichnet ist , und IIRC, die Init-Skripte, haben buchstäblich dasselbe verwendet Jahrzehnte ( /etc/init/hostname.confenthält es immer noch), also muss ich sagen, ich bin wirklich verwundert, wie niemand dies bereits erwähnt hatte :)
Warnung: Funktioniert nicht mit Ubuntu 18+, das standardmäßig cloud-init ausführt und den Hostnamen beim Booten steuert.
Nslntmnx
@nslntmnx ähm, was? Welche neue Abhängigkeit hat Ubuntu 18 eingeführt, um standardmäßig Cloud-Init zu laden? Möglicherweise denken Sie an einige Cloud-angepasste Images. In diesem Fall sollte es nicht überraschen, dass sie benutzerdefinierte Cloud-Bereitstellungstools ausführen.
Antworten:
Es ist einfach. Klicken Sie einfach auf das Zahnradsymbol (in der oberen rechten Ecke des Bildschirms), öffnen Sie den Bildschirm "Über diesen Computer" (in dem Zahnradsymbol) und bearbeiten Sie den "Gerätenamen".
Oder verwenden Sie in einem Terminal den folgenden Befehl:
Dies setzt den Hostnamen auf Ihren neuen Namen, bis Sie neu starten. Siehe
man hostname
und Wie ändere ich den Computernamen? Für weitere Informationen. Verwenden Sie nicht_
in Ihrem Namen.Hinweis
Nach einem Neustart werden Ihre Änderungen in
/etc/hostname
verwendet, so dass Sie (wie in der Frage gesagt) weiterhin verwenden sollten(oder einem anderen Editor), sodass diese Datei den Hostnamen enthält.
Um zu testen, ob die Datei korrekt eingerichtet ist, führen Sie Folgendes aus:
Sie sollten auch
/etc/hosts
die folgende Zeile bearbeiten und ändern:so dass es jetzt Ihren neuen Hostnamen enthält. (Dies ist erforderlich, da sonst viele Befehle nicht mehr funktionieren.)
quelle
/etc/hosts
(siehe andere Antworten)hostname
der neue Name sofort wirksam wird, ist er nicht "permanent", es sei denn, Sie ändern ihn ebenfalls/etc/hostname
und/etc/hosts
da dies die Dateien sind, die nach einem Neustart oder einem Absturz gelesen werden, ist dies möglicherweise nicht der Fall vorzeitig erwarten.Ubuntu ab 13.04
Der
hostnamectl
Befehl ist Teil der Standardinstallation für Desktop- und Server-Editionen.Es kombiniert das Einstellen des Hostnamens über den
hostname
Befehl und das Bearbeiten/etc/hostname
. Zusätzlich zum Festlegen des statischen Hostnamens kann der "hübsche" Hostname festgelegt werden, der in Ubuntu nicht verwendet wird. Die Bearbeitung/etc/hosts
muss leider noch separat erfolgen.Dieser Befehl ist Teil des
systemd-services
Pakets (das ab Ubuntu 14.04 auch die Befehletimedatectl
und enthältlocalectl
). Während Ubuntu migriert,systemd
ist dieses Tool die Zukunft.quelle
hostnamectl
existiert nicht. Vermutlich verwenden einige Ubuntu-Varianten systemd noch nicht.Ohne Neustart
Ändern des Hostnamens oder Computernamens in Ubuntu ohne Neustart
Bearbeiten Sie / etc / hostname und ändern Sie den neuen Wert.
Bearbeiten Sie / etc / hosts und ändern Sie die alte Zeile 127.0.1.1 in Ihren neuen Hostnamen
Hinweis : Ich habe es in einem Forum> Edit / etc / hosts gelesen und die alte Zeile 127.0.1.1 in Ihren neuen Hostnamen geändert. Wenn Sie dies nicht tun, können Sie sudo nicht mehr verwenden. Wenn Sie es bereits getan haben , drücke ESC im Grub-Menü, wähle "Recovery" und bearbeite deine Host-Datei mit den richtigen Einstellungen.)
Nach einem Neustart ist Ihr Hostname der neue, den Sie ausgewählt haben
Ohne Neustart
Zum Ändern ohne Neustart können Sie einfach hostname.sh verwenden, nachdem Sie / etc / hostname bearbeitet haben. Sie müssen beide Hostnamen in / etc / hosts (127.0.0.1 newhost oldhost) belassen, bis Sie den folgenden Befehl ausführen:
Hinweis : Über dem Befehl, um die Änderung zu aktivieren. Der in dieser Datei gespeicherte Hostname (/ etc / hostname) bleibt beim Neustart des Systems erhalten (und wird mit demselben Dienst festgelegt).
quelle
sudo: unable to resolve host old-hostname
. Für diesen Teil funktioniert die @ jesperado-Lösung gut./etc/hosts
, schlagen die Mant-Dinge in 12.04.2 LTS fehl, einschließlichw
Befehl, Apache/sbin/reboot
und vielem mehr. Achten Sie darauf, zu aktualisieren/etc/hosts
127.0.0.1
fürlocalhost
als auch127.0.1.1
für einen benutzerdefinierten Hostnamen. Richtig? Gegen Ende Ihrer Antwort verweisen Sie für eine Aktion ohne Rebot auf/etc/hosts
und127.0.0.1 newhost oldhost
. Sie brauchen also keine127.0.1.1
Adresse?sudo nano /etc/hosts
damit die Änderung wirksam wurde. ohne sudonano /etc/hosts
habeDer Standardname wurde bei der Installation von Ubuntu festgelegt. Sie können es auf einfache Weise in Desktop und Server beliebig ändern, indem Sie die Hosts und Hostnamensdateien bearbeiten. Im Folgenden erfahren Sie, wie:
sudo hostname NEW_NAME_HERE
Dadurch wird der Hostname bis zum nächsten Neustart geändert. Die Änderung ist in Ihrem aktuellen Terminal nicht sofort sichtbar. Starten Sie ein neues Terminal, um den neuen Hostnamen anzuzeigen.
Führen Sie den folgenden Befehl aus, um den Namen dauerhaft zu ändern:
sudo -H gedit /etc/hostname
undsudo -H gedit /etc/hosts
Für Ubuntu Server ohne GUI laufen
sudo vi /etc/hostname
undsudo vi /etc/hosts
und bearbeiten Sie sie eins nach dem anderen. Ändern Sie in beiden Dateien den Namen in den gewünschten Namen und speichern Sie sie.Starten Sie schließlich Ihren Computer neu, um die Änderungen zu übernehmen.
quelle
Hier ist ein Skript, das den Hostnamen auf die vorgeschriebene Weise ändert. Es stellt sicher, dass nicht nur
sudo
X11-Anwendungen, sondern auch X11-Anwendungen ohne Neustart weiter funktionieren.Verwendungszweck:
sudo ./change_hostname.sh new-hostname
quelle
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
? Nur neugierig.xauth list
) und ersetzt den alten Hostnamen durch den neuen Hostnamen (sed
). Dannawk
Anführungszeichen um das erste Argument legt auf ,xauth add
weilxauth
‚s Ein- und Ausgabeformat ist nicht symmetrisch.Ohne Neustart:
/etc/hostname
/etc/hosts
entsprechendsudo sysctl kernel.hostname=mynew.local.host
Überprüfen Sie Ihren aktuellen Hostnamen mit
hostname -f
quelle
sudo: unable to resolve host oldname
,sysctl: setting key "kernel.hostname": Read-only file system
. Vielleicht ist da ein CT in Proxmox.Persistenz des Hostnamens von Cloud-init (Ubuntu 18+)
Während die oben genannten Ansätze (
hostnamectl
,etc/hostname
usw.) für eine sofortige Änderung des Hostnamens funktionieren, kann Cloud-init unter anderem die Einstellung des Hostnamens steuern. Es bleibt also nach einem Neustart nicht hängen, wenn cloud-init installiert ist. Wenn Sie möchten, dass die Änderung nach einem Neustart erhalten bleibt, müssen Sie die Konfigurationsdateien von cloud-init bearbeiten. Deaktivieren Sie das Hostnamen-Set / Update-Modul von cloud-init :oder deaktiviere cloud-init komplett:
quelle
/etc/cloud/cloud.cfg
. Wie lautet der Paketname? Nurcloud-init
?So rufen Sie Ihren aktuellen Hostnamen ab:
Dies kann in jedem Texteditor geändert werden. Sie müssten auch einen anderen Eintrag als localhost gegen 127.0.0.1 in / etc / hosts aktualisieren.
quelle
/etc/hostname
durch den gewünschten Hostnamen (Sie können ihn mit bearbeitensudo nano /etc/hostname
)./etc/hosts
, ersetzen Sie den Eintrag neben 127,0. 1 .1 mit dem gewünschten Hostnamen (Sie können mit bearbeitensudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
quelle
# 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.
ich derzeit kein Ubuntu 18 habe, so dass ich es erst am Wochenende testen kann.Ubuntu 16.04
Dies ist ohne Neustart und ohne Terminalbenutzung.
Terminal öffnen. Überzeugen Sie sich selbst.
(Bei älteren Versionen kann das Textfeld nicht bearbeitet werden.)
quelle
Die klassische Antwort auf die Frage des ursprünglichen Posters lautet, dass Sie nach dem Bearbeiten
/etc/hostname
die Anwendung ohne Neustart ausführen, indem Sie hostname (1) mit der Option-F
(--file
) als root ausführen:Der Hostname (5) , der mit
/etc/hostname
und mit dem genannten Programm umgeht , ist seit über zwanzig Jahren derselbe in Debian und seinen Derivaten, und das Paket, sofern es als wesentlich und erforderlich gekennzeichnet ist , und IIRC, die Init-Skripte, haben buchstäblich dasselbe verwendet Jahrzehnte (/etc/init/hostname.conf
enthält es immer noch), also muss ich sagen, ich bin wirklich verwundert, wie niemand dies bereits erwähnt hatte :)quelle
Das sollte den Job machen, denke ich
quelle
Ich habe die Antworten gelesen, aber ich denke, wahrscheinlich suchen Sie danach:
Führen Sie einfach diese beiden Befehle aus, nachdem Sie die
/etc/hostname
Datei bearbeitet haben .Das ist alles. Kein Neustart erforderlich. Stellen Sie auch sicher, dass Sie den Namen in der
/etc/hosts
Datei ändern .quelle
/etc/hosts
(ich habe es am 14.04 bestätigt).Ubuntu 16.04
Lösung basierend auf der Antwort der DigitalOcean Comunity.
Bearbeiten Sie die Hosts- Datei.
$ sudo nano /etc/hosts
Ersetzen Sie den alten Namen durch einen neuen.
127.0.0.1 localhost newname
Richten Sie einen neuen Hostnamen ein.
$ sudo hostnamectl set-hostname newname
quelle