Frage Wie ändere ich den Hostnamen ohne Neustart?


Ich möchte den Betriebssystem-Hostnamen ändern, möchte aber nicht neu starten.

Ich habe bearbeitet /etc/hostname aber es erfordert einen Neustart, um implementiert zu werden. Wie vermeide ich das?


455
2017-12-14 08:56


Ursprung


Warnung: funktioniert nicht mit Ubuntu 18+, auf dem standardmäßig cloud-init ausgeführt wird, welches den Hostnamen beim Booten steuert. - nslntmnx


Antworten:


Es ist einfach. Klicken Sie einfach auf das Zahnradsymbol (in der oberen rechten Ecke des Bildschirms), öffnen Sie den Bildschirm "Über diesen Computer" (befindet sich auf dem Zahnradsymbol) und bearbeiten Sie "Gerätename".

Oder verwenden Sie in einem Terminal den folgenden Befehl:

sudo hostname your-new-name

Dadurch wird der Hostname auf Ihren neuen Namen gesetzt, bis Sie ihn neu starten. Sehen man hostname und Wie ändere ich den Computernamen? Für weitere Informationen. Verwende nicht _ in deinem Namen.

Hinweis

Nach einem Neustart die Änderungen in /etc/hostname wird benutzt, also (wie du in der Frage schon sagtest), solltest du trotzdem verwenden

sudo -H gedit /etc/hostname

(oder ein anderer Editor), so dass die 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 bearbeiten /etc/hosts und ändere die Zeile, die liest:

127.0.1.1     your-old-hostname

so dass es jetzt Ihren neuen Hostnamen enthält. (Dies ist erforderlich, sonst funktionieren viele Befehle nicht mehr.)


593
2017-12-14 10:27



Ich möchte nicht neu starten - Deepak Rajput
Ich kenne. Deshalb sollten Sie den Befehl 'hostname' verwenden. Ich wollte nur klarstellen, dass der Befehl 'hostname' nur den Hostnamen ändert, bis du / etc / crash / etc startest. Danach liest es den Namen erneut aus der Datei. - jasperado
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
Beachten Sie, dass Sie auch das ändern müssen /etc/hosts (Siehe andere Antworten) - JB.
Kurz gesagt, obwohl hostname Wird der neue Name sofort wirksam, ist er nicht "permanent", es sei denn, Sie ändern sich auch /etc/hostname und /etc/hosts, da dies die Dateien sind, die nach einem Neustart oder einem Absturz gelesen werden, was natürlich nicht voraus erwartet werden kann. - Tim Parenti


Ubuntu ab 13.04

Das hostnamectl Der Befehl ist Teil der Standardinstallation für Desktop- und Server-Editionen.

Es kombiniert die Einstellung des Hostnamens über die hostname Befehl und Bearbeitung /etc/hostname. Es kann nicht nur den statischen Hostnamen festlegen, sondern auch den "schönen" Hostnamen, der in Ubuntu nicht verwendet wird. Leider, Bearbeitung /etc/hosts muss noch separat gemacht werden.

hostnamectl set-hostname new-hostname

Dieser Befehl ist Teil des systemd-services Paket (welches ab Ubuntu 14.04 auch die timedatectl und localectl Befehle). Während Ubuntu zu migriert systemdDieses Werkzeug ist die Zukunft.


250
2017-08-27 21:03



Beachten Sie, dass dies nicht überall verfügbar ist. Guckte nur auf meine Ubuntu 14.04 LTS ARM-7 Installation, und hostnamectl existiert nicht. Raten Sie, dass einige Arten von Ubuntu noch nicht systemd verwenden. - Stéphane
@ Stéphane Die Befehle sind Teil der Systemd-Suite, aber sie sind unabhängig voneinander verfügbar. In diesem Fall 13.04-14.10 nicht Systemd als Init verwenden, durch den Befehl verfügbar ist. - muru
@ H2ONaCl die Shell-Variable wird beim Start gesetzt, nur eine andere Shell öffnen und die Hostname-Variable sollte in Ordnung sein. Wie bei Sudo hat mich der Fehler bei der Auflösung des Hostnamens nie wirklich daran gehindert, irgendetwas zu tun. - muru
@ H2ONaCl ah, aber die HOSTNAME Variablle ist nicht Standard - IIRC Strich und Ksh haben es nicht, zsh verwendet HOST, so weit wie Shell-Variablen gehen, ist es die Unterseite des Heaps. - muru
Funktioniert immer noch in Ubuntu 18.04 LTS. - donlucacorleone


Ohne Neustart

Ändern des Hostnamens oder Computernamens in Ubuntu ohne Neustart

Editiere / etc / hostname und ändere 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 gelesen> Editiere / etc / hosts und ändere die alte 127.0.1.1 Zeile in deinen neuen Hostnamen (wenn du das nicht tust, kannst du sudo nicht mehr benutzen. Wenn du es schon getan hast, Drücken Sie ESC im Grub-Menü, wählen Sie Recovery und bearbeiten Sie Ihre Host-Datei mit den richtigen Einstellungen.

Jetzt, nach einem Neustart, ist Ihr Hostname der neue, den Sie gewählt haben

Ohne Neustart

Wechseln ohne einen Neustart, Sie können einfach hostname.sh verwenden, nachdem Sie / etc / hostname bearbeitet haben. Sie müssen beide Hostnamen in / etc / hosts (127.0.0.1 newhost oldhost) beibehalten, bis Sie den folgenden Befehl ausführen:

sudo service hostname start

Hinweis : Über Befehl, um die Änderung aktiv zu machen. Der Hostname, der in dieser Datei (/ etc / hostname) gespeichert ist, wird beim Systemneustart beibehalten (und wird mit demselben Dienst eingestellt).


58
2018-02-13 20:16



Unter Ubuntu 12.10 funktioniert der letzte Teil nicht mit der folgenden Fehlermeldung sudo: unable to resolve host old-hostname. Für diesen Teil funktioniert @jesperado Lösung gut. - Frédéric Grosshans
Wenn Sie nicht aktualisieren /etc/hosts, mant dinge beginnen am 12.04.2 LTS zu versagen, einschließlich der w Befehl, Apache, /sbin/reboot und vieles mehr. Stellen Sie sicher, dass Sie aktualisieren /etc/hosts - Josh
Sie beziehen sich auf beide 127.0.0.1 zum localhost und 127.0.1.1 für einen benutzerdefinierten Hostnamen. Recht? Dann, gegen Ende Ihrer Antwort, für eine Aktion ohne einen Rebot, Sie verweisen /etc/hosts und 127.0.0.1 newhost oldhost. Also, es besteht keine Notwendigkeit für ein 127.0.1.1 Adresse? - Nikos Alexandris
hat nicht für mich gearbeitet. Ich musste es benutzen sudo nano /etc/hosts damit die Änderung wirksam wird; ohne Sudo, nur nano /etc/hosts habe die Änderung nicht gespeichert - conman253
Was ist der Unterschied zwischen Neustart und Neustart? - storm


Der Standardname wurde bei der Installation von Ubuntu festgelegt. Sie können es einfach in Desktop & Server beliebig ändern, indem Sie die Hosts und Hostnamen-Dateien bearbeiten. Unten ist wie:

  1. Drücken Sie StrgAltt auf der Tastatur, um das Terminal zu öffnen. Wenn es geöffnet wird, führen Sie den folgenden Befehl aus: sudo hostname NEW_NAME_HERE

Dies ändert den Hostnamen bis zum nächsten Neustart. Die Änderung wird in Ihrem aktuellen Terminal nicht sofort sichtbar sein. Starten Sie ein neues Terminal, um den neuen Hostnamen zu sehen.

  1. Um den Namen dauerhaft zu ändern, führen Sie den Befehl zum Bearbeiten der Host-Dateien aus:

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

Für Ubuntu-Server ohne GUI ausführen sudo vi /etc/hostname und sudo vi /etc/hosts und bearbeiten sie eins nach dem anderen. Ändern Sie in beiden Dateien den Namen und speichern Sie sie.

Starten Sie Ihren Computer neu, um die Änderungen zu übernehmen.


42
2017-11-01 22:47





Hier ist ein Skript, das den Hostnamen in der vorgeschriebenen Weise ändert. Es stellt sicher, dass nicht nur sudo aber auch X11-Anwendungen funktionieren weiterhin, ohne dass ein Neustart erforderlich ist.

Verwendung: 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



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}')" machen? Nur neugierig. - Fr0zenFyr
@ Fr0zenFyr: Es braucht ein gültiges X11-Authentifizierungs-Token (xauth list) und ersetzt den alten Hostnamen durch den neuen Hostnamen (sed). Dann awk setzt Zitate um das erste Argument herum xauth add weil xauthDas Eingabe- und Ausgabeformat ist nicht symmetrisch. - Lucas
Danke für die Erklärung. Ich hatte immer neu gestartet, damit die Änderungen wirksam wurden. +1 - Fr0zenFyr
@trakz: Eigentlich 127.a.b.c egal welche Nummer, ist alles localhost nach IETF RFC. (Die meisten Leute wissen das einfach nicht, aber wie die meisten nicht, bearbeiten genehmigt) - Fabby


Ohne Neustart:

  1. Ändern Sie den Hostnamen in /etc/hostname
  2. aktualisieren /etc/hosts entsprechend
  3. sudo sysctl kernel.hostname=mynew.local.host

Überprüfen Sie Ihren aktuellen Hostnamen mit hostname -f


12
2018-03-31 14:46



Mit 16.04, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Vielleicht, weil ein CT in Proxmox ist. - Pablo Bianchi


So erhalten Sie Ihren aktuellen Hostnamen:

cat /etc/hostname

Dies kann in jedem Texteditor geändert werden. Sie müssten auch den Eintrag anders als localhost gegen 127.0.0.1 in / etc / hosts aktualisieren.


7
2017-09-14 01:12



Oder führen Sie einfach den Befehl "Hostname" von der Kommandozeile aus. - elomage


  1. Ersetzen Sie den Inhalt von /etc/hostname mit dem gewünschten Hostnamen (Sie können mit bearbeiten sudo nano /etc/hostname)
  2. Im /etc/hosts, ersetzen Sie den Eintrag neben 127.0.1.1 mit dem gewünschten Hostnamen (Sie können mit bearbeiten sudo nano /etc/hosts)
  3. Ausführen sudo service hostname restart; sudo service networking restart

4
2018-05-08 18:26



Warnung: funktioniert nicht mit Ubuntu 18+, auf dem standardmäßig cloud-init ausgeführt wird, welches den Hostnamen beim Booten steuert. - nslntmnx
@nslntmnx bist du dir sicher? Ich sehe in der 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. Ich habe derzeit kein Ubuntu 18, also kann ich es bis zum Wochenende nicht testen. - George


Ubuntu 16.04

Das ist ohne Neustart und ohne Terminalgebrauch.

  • Gehe zu Systemeinstellungen -> Details.
  • Da ist es. Neben Gerätename, da ist eine Textbox.
  • Textfeld bearbeiten und Fenster schließen.

Terminal öffnen Überzeugen Sie sich selbst.

(Für ältere Versionen ist die Textbox nicht editierbar.)


4
2018-03-13 18:26





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

Das sollte meiner Meinung nach funktionieren


3
2017-12-20 12:43



Ich glaube nicht, dass das einen Neustart überleben wird - Collin Anderson
Warnung: funktioniert nicht mit Ubuntu 18+, auf dem standardmäßig cloud-init ausgeführt wird, welches den Hostnamen beim Booten steuert. - nslntmnx