Ein Hostname ist eine für Menschen lesbare Zeichenfolge, die Benutzern hilft, einen Computer mit einem vertrauten Namen zu bezeichnen, anstatt mit einer Zahl oder unhandlichen Beschreibungen wie „der dritte von unten im vorletzten Rack“. Häufig wird während des Installationsvorgangs ein Hostname festgelegt, aber es gibt Zeiten, in denen er geändert werden muss. Unter Linux gibt es viele Möglichkeiten, einen Hostnamen festzulegen, und dieser Artikel soll sie alle abdecken.
Bevor Sie sich jedoch mit den Tools im Zusammenhang mit Hostnamen befassen, müssen Sie die verschiedenen Kontexte verstehen, in denen der Begriff verwendet wird. Es gibt möglicherweise zwei Bezeichner für den Hostnamen eines Systems:den Administrator des Computers (den Besitzer eines Laptops oder den Root-Benutzer eines Servers) und das Netzwerk (je nach Protokollen und Einstellungen). Dieser Faktor kann zu Verwirrung führen, da Sie möglicherweise auf den Hostnamen Ihres Computers schauen und einen Wert sehen, nur um festzustellen, dass derselbe Computer im Netzwerk als etwas anderes bezeichnet wird.
Diese Situation hat einen historischen Grund. Vor langer Zeit, vor DNS, mussten Hosts in einem Netzwerk lokal in der Datei /etc/hosts
definiert werden . Wenn es 31 Hosts in einem Netzwerk gab und ein neuer hinzugefügt wurde, mussten 32 Hosts ihre /etc/hosts
aktualisieren Datei, um die richtige IP-Adresse und den entsprechenden Hostnamen für jeden ihrer Nachbarn wiederzugeben. Dieser Prozess ließ sich für größere vernetzte Systeme wie das World Wide Web (das Internet) nicht gut skalieren, und so wurde DNS erfunden und das Konzept der Hostnamen weitgehend von lokalen Computern abstrahiert, um stattdessen vom Netzwerk verwaltet zu werden. P>
Heute ist der wichtige Hostname derjenige, den das Netzwerk verwendet. Der Wert des Hostnamens in /etc/hosts
wird oft auf localhost
gesetzt standardmäßig.
Vor diesem Hintergrund finden Sie hier alle Möglichkeiten, einen Hostnamen unter Linux zu manipulieren.
[ Kostenloser Download:Spickzettel für fortgeschrittene Linux-Befehle. ]
Ändere alle drei Namen mit hostnamectl
Die hostnamectl
Befehl von systemd
kann drei Arten von Hostnamen manipulieren:
- Vorübergehend :Von der Netzwerkkonfiguration empfangen.
- Statisch :Vom Kernel bereitgestellt.
- Hübsch :Vom Benutzer bereitgestellt.
Ein vorübergehender Hostname kann sich nach Bedarf ändern, um Namenskollisionen zu vermeiden. Zum Beispiel, wenn Sie Ihren Computer penguin
nennen aber es gibt bereits einen anderen Host mit diesem Namen im Netzwerk, Ihr Netzwerk-Hostname wird zu penguin-1
.
Statische und hübsche Hostnamen sind ein bisschen wie lokale Variablen:Sie werden für Aktivitäten verwendet, die auf dem lokalen Computer stattfinden, hauptsächlich als Bequemlichkeit für den Benutzer, zusammen mit Anwendungen, die wissen müssen, ob sie lokal oder remote ausgeführt werden (z. über eine weitergeleitete X-Sitzung).
Beim Aufruf ohne Argumente wird hostnamectl
gibt die statischen und hübschen Namen sowie einige Systeminformationen zurück:
$ hostnamectl
Static hostname: penguin
Pretty hostname: Penguin VM
Icon name: computer-vm
Chassis: vm
Machine ID: 418d9ce8ead44bbfb6970c0d356b89bf
Boot ID: fb3a310237ef41f88b1c62c26f19065a
Virtualization: kvm
Operating System: Fedora 30 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:30
Kernel: Linux 5.0.9-301.fc30.x86_64
Architecture: x86-64
$ sudo hostnamectl set-hostname --pretty "Web dev test environment"
$ sudo hostnamectl set-hostname --static webdev-test-env
$ hostnamectl
Static hostname: webdev-test-env
Pretty hostname: Web dev test environment
[...]
Ändern Sie die statischen und hübschen Namen in der GUI mit den GNOME-Einstellungen
Wenn Sie die statischen und hübschen Namen in einer Desktop-Anwendung festlegen möchten, verwenden Sie die GNOME-Einstellungen. Um die GNOME-Einstellungen zu starten, gehen Sie zu den Aktivitäten Menü in der oberen linken Ecke Ihres GNOME-Desktops. Geben Sie Settings
ein in das Suchfeld ein oder klicken Sie auf Anwendungen anzeigen Symbol im linken Dock und suchen Sie nach Einstellungen in den Anwendungssymbolen wie unten gezeigt:
$ hostnamectl
Static hostname: rockhopper-computer
Pretty hostname: rockhopper computer
[...]
Ändern Sie den statischen Namen mit cockpit
Fedora-, CentOS- und RHEL-Systeme verfügen über eine Webkonsolenanwendung namens Cockpit zur Überwachung und Konfiguration lokaler und entfernter Maschinen. Mit Cockpit können Sie den statischen Hostnamen für Ihren eigenen Rechner oder jeden von Ihnen verwalteten Rechner ändern (solange Cockpit aktiviert ist).
Installieren und aktivieren Sie zunächst Cockpit:
$ sudo dnf install cockpit
[...]
$ sudo systemctl enable --now cockpit
Klicken Sie in der Webkonsole auf System Registerkarte in der linken Spalte. Klicken Sie auf den Eintrag für Hostname und bearbeiten Sie den Pretty Host Name und (statisch) Echter Hostname :
$ sudo echo "galapagos" > /etc/hostname
$ hostnamectl
Static hostname: snares
Pretty hostname: rockhopper web console computer
[...]
Ändern Sie den statischen Namen im hostname
Datei
Sie können den statischen Hostnamen auch manuell festlegen, indem Sie /etc/hostname
bearbeiten . Diese Datei enthält standardmäßig genau eine Zeile. Wenn Sie den Hostnamen noch nicht geändert haben, lautet diese Zeile wahrscheinlich localhost.localdomain
. Wenn Sie hostnamectl
verwendet haben den Hostnamen bereits zu ändern, dann spiegelt diese Datei diese Änderung wider.
Es wird nicht unbedingt empfohlen, diese Datei manuell zu bearbeiten, da sie nicht alle anderen Hostnamenswerte auf die Art und Weise aktualisiert hostnamectl
tut. Zum Beispiel:
$ sudo echo "galapagos" > /etc/hostname
$ hostnamectl
Static hostname: galapagos
Pretty hostname: rockhopper computer
Transient hostname: rockhopper-computer
[...]
Ändern Sie den statischen Namen mit nmcli
Eine andere Möglichkeit, einen statischen Hostnamen zu ändern, ist die Befehlszeilenschnittstelle für Network Manager, nmcli
:
$ sudo nmcli general hostname emperor
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: rockhopper-computer
[...]
Ändern Sie den transienten Namen mit sysctl
Die sysctl
Mit dem Befehl können Sie Kernelparameter konfigurieren, während Linux ausgeführt wird (d. h. anstatt beim Booten). Der vorübergehende Hostname Ihres Computers ist ein Kernel-Parameter, sodass Sie ihn mit diesem Befehl ändern können:
$ sudo sysctl kernel.hostname=humboldt
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: humboldt
[...]
Ändern Sie den transienten Namen mit hostname
Der hostname
Befehl aus dem util-linux
Paket ist ein einfaches Tool zum Abfragen und Festlegen des vorübergehenden Hostnamens.
So fragen Sie Ihren aktuellen Hostnamen ab:
$ hostname
humboldt
$ sudo hostname fjordland
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: fjordland
Seien Sie vorsichtig mit /etc/hosts
Die /etc/hosts
Die Datei ist größtenteils historisch, obwohl sie von einigen Anwendungen und Protokollen verwendet wird, und kann eine nützliche Methode zum Erstellen von Verknüpfungen zu Hosts sein, die Sie häufig verwenden. Sie können damit einen Hostnamen festlegen, aber normalerweise erstellen Sie nur einen Alias für localhost
an der IP-Adresse 127.0.0.1
(Netzwerk-Loopback-Adresse Ihres Computers).
Zum Beispiel, wenn Sie /etc/hosts
ändern von den Standardeinträgen wie folgt:
$ cat /etc/hosts
127.0.0.1 magellanic magellanic.localdomain magellanic magellanic.localdomain4
::1 magellanic magellanic.localdomain magellanic magellanic.localdomain6
$ ping -c 1 localhost
PING localhost(magellanic (::1)) 56 data bytes
64 bytes from magellanic (::1): icmp_seq=1 ttl=64 time=0.182 ms
[...]
$ ping -c 1 magellanic
PING magellanic(magellanic (::1)) 56 data bytes
64 bytes from magellanic (::1): icmp_seq=1 ttl=64 time=0.181 ms
[...]
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: fjordland
Befolgen Sie die Konformitätskonvention
Wie Sie den Iterationen in diesem Artikel entnehmen können, kann der Hostname eines Computers verwirrend werden, wenn Sie zu viele Methoden verwenden, um ihn festzulegen, oder wenn Sie ihn häufig ändern. Nichts erzwingt Einheitlichkeit zwischen Hostnamentypen, aber es ist eine Konvention, alles auf jedem Computer gleich zu halten.
Wählen Sie einen einprägsamen Namen und verwenden Sie ihn für Ihren hübschen Namen. Daraus lassen sich die statischen und transienten Namen ableiten. Genauso wichtig ist, dass Sie in einem großen Netzwerk aussagekräftig wählen Namen. Beispielsweise können alle Computer des oberen Managements nach einem D&D-Monster benannt werden, während alle Computer in der IT-Abteilung nach einem berühmten Raumschiff benannt werden können und so weiter. Die Verwendung eines Benennungsschemas hilft, Namenskollisionen zu vermeiden und bietet Kontext zu einer ansonsten schwindelerregenden Liste von Netzwerkhosts.