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