Ich habe einen Ubuntu Server 12.04 (amd64
) Maschine, auf der, wenn ich /etc/hosts
ändere , werden die Änderungen auch nach einem Neustart nicht übernommen. Ich verwende /usr/bin/host
zu testen, aber auch keines der anderen Programme scheint es zu erkennen.
Dies ist ein Server und nscd
und dnsmasq
sind nicht installiert. Auch die Datei /etc/nsswitch.conf
enthält die Zeile:
hosts: files dns
damit ich erwarten würde, dass es funktioniert. Ich habe auch überprüft, dass die mtime
der Datei ändert sich beim Bearbeiten und versucht, service networking restart
auszuführen (allen Widrigkeiten zum Trotz) und auch resolvconf -u
.
Alle Befehle wurden als root
ausgeführt wo benötigt. Das Netzwerk des Geräts wurde manuell in /etc/network/interfaces
konfiguriert und nicht über Network Manager (er ist auch nicht installiert).
Grundsätzlich möchte ich erreichen, dass die IP für einige Hosts manipuliert werden kann. Der Grund dafür ist, dass ich innerhalb unseres Netzwerks eine IP bekomme, zu der ich keine Route habe, aber ich kann die externe IP für diesen Dienst über HTTPS verwenden.
Was übersehe ich?
Hinweis: lokal läuft kein DNS-Server und der nameserver
Zeilen in /etc/resolv.conf
(und die entsprechenden Zeilen in interfaces
) verweisen auf den DNS-Server, der mir die falsche IP gibt.
Auch beachten: Ich habe im Internet gesucht und die „ähnlichen Fragen“ gelesen, aber mein Fall scheint nicht abgedeckt zu sein.
/etc/host.conf
ist:
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on
Akzeptierte Antwort:
Der host-Befehl prüft die hosts-Datei nicht. Aus der Manpage:
host is a simple utility for performing DNS lookups.
Wenn Sie Lookups unter Berücksichtigung der Hosts-Datei testen möchten, verwenden Sie ping oder getent.
$ tail -1 /etc/hosts
127.0.0.1 google.com
$ ping -c1 google.com | head -1
PING google.com (127.0.0.1) 56(84) bytes of data.
$ getent ahosts google.com
127.0.0.1 STREAM google.com
127.0.0.1 DGRAM
127.0.0.1 RAW