Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Die Datei /etc/hosts wird benutzt, um Rechnernamen in IP-Adressen aufzulösen – wenn kein Nameserver im lokalen Netzwerk vorhanden ist. Nach der Installation eines Ubuntu-Rechners mit dem Rechnernamen "jupiter" sieht die Datei so aus:
127.0.0.1 localhost 127.0.1.1 jupiter # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Der obere Teil definiert den localhost und den Rechnernamen. Ab Ubuntu 6.06 kommen noch ein paar Zeilen für IPv6 hinzu.
Wie schon beschrieben kann die /etc/hosts auch dazu benutzt werden, Rechner im Netzwerk über ihren Namen anstatt über ihre IP-Adresse anzusprechen. Besteht das lokale Netzwerk z.B. aus 3 Rechnern mit den Namen
jupiter (192.168.0.1 - dieses System)
mars (192.168.0.2)
saturn (192.168.0.3)
muss in der /etc/hosts mit Root-Rechten [1] folgendes eingetragen [2] werden:
127.0.0.1 localhost 127.0.1.1 jupiter # <IP-Adresse> <Rechnername(n)> 192.168.0.1 jupiter.homenetwork jupiter 192.168.0.2 mars.homenetwork mars 192.168.0.3 saturn.homenetwork saturn # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Dadurch können die Rechner "mars" und "saturn" über ihren Namen vom Rechner "jupiter" aus angesprochen werden.
Darüber hinaus lässt sich durch eigene Einträge ein einfacher, aber effektiver systemweiter Blocker realisieren. Dazu werden einfach zeilenweise weitere Namen (oder IP-Adressen) mit localhost
verbunden. Beispiel:
127.0.0.1 localhost 127.0.1.1 jupiter # <IP-Adresse> <geblockte/r Name/n oder IP-Adresse/n)> 127.0.0.1 www.geblockte_domain.de
Damit werden alle Anfragen an www.geblockte_domain.de
auf localhost
umgeleitet und die Domain ist nicht mehr erreichbar. Nachteile dieses Verfahrens sind aber zum einen die aufwendige Pflege blockierter Namen und zum anderen die Verarbeitung sehr großer hosts
-Dateien. Daher ist ein Proxy-Server auf Dauer die bessere Wahl.
Nach dem Upgrade von Ubuntu 7.04 Feisty Fawn auf 8.04 Hardy Heron kann in der Datei /etc/hosts die Definition des localhost fehlen. Bei jeder Verwendung von sudo in der Konsole erscheint dann die Fehlermeldung:
"sudo: unable to resolve host Rechnername"
wobei "Rechnername" der Name des aktuell verwendeten Rechners ist (die Verwendung von sudo
ist aber nicht eingeschränkt).
Dies lässt sich durch eine kleine Änderung beheben. Hierzu werden mit Root-Rechten [1] in einem Editor [2] in der Datei /etc/hosts die zwei Zeilen:
127.0.0.1 localhost Rechnername 127.0.1.1 Rechnername
ergänzt, wobei auch hier "Rechnername" der Name des aktuell verwendeten Rechners ist. Falls die Datei aber folgendermaßen aussieht:
127.0.0.1 localhost Rechnername 127.0.1.1 Rechnername.domaene Rechnername
kann Rechnername.domaene einfach gelöscht werden (entscheidend ist der Zusatz mit . , nicht unbedingt das Wort domaene).