Mám Ubuntu Server 12.04 (amd64
) stroj, na kterém, když změním /etc/hosts
, změny se neprojeví ani po restartu. Používám /usr/bin/host
otestovat, ale zdá se, že žádný z ostatních programů to také nezachytil.
Toto je server a nscd
a dnsmasq
nejsou nainstalovány. Také soubor /etc/nsswitch.conf
obsahuje řádek:
hosts: files dns
takže bych čekal, že to bude fungovat. Také jsem zkontroloval, že mtime
změn souboru a pokusu o spuštění service networking restart
(na rozdíl od všech kurzů) a také resolvconf -u
.
Všechny příkazy se spouštějí jako root
kde je potřeba. Zařízení má síť nakonfigurovanou ručně v /etc/network/interfaces
a ne přes Network Manager (ani ten není nainstalován).
V zásadě chci dosáhnout toho, aby bylo možné manipulovat s IP pro několik hostitelů. Důvodem je, že uvnitř naší sítě získám IP, ke které nemám žádnou cestu, ale mohu pro tuto službu použít externí IP přes HTTPS.
Co mi chybí?
Poznámka: lokálně není spuštěn žádný server DNS a nameserver
řádky v /etc/resolv.conf
(a příslušné řádky v interfaces
) ukažte na server DNS, který mi dává špatnou IP.
Upozorňujeme také: Hledal jsem na webu a četl jsem „podobné otázky“, ale zdá se, že můj případ není pokryt.
/etc/host.conf
je:
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on
Přijatá odpověď:
Příkaz host nekontroluje soubor hosts. Z manuálové stránky:
host is a simple utility for performing DNS lookups.
Pokud chcete otestovat vyhledávání při respektování souboru hosts, použijte příkaz ping nebo 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