Ho un server Ubuntu 12.04 (amd64 ) macchina su cui, quando cambio /etc/hosts , le modifiche non vengono rilevate, anche dopo un riavvio. Sto usando /usr/bin/host da testare, ma nessuno degli altri programmi sembra rilevarlo.
Questo è un server e nscd e dnsmasq non sono installati. Inoltre, il file /etc/nsswitch.conf contiene la riga:
hosts: files dns
in modo che mi aspetterei che funzionasse. Ho anche verificato che il mtime del file cambia con la modifica e ho provato a eseguire service networking restart (contro ogni probabilità) e anche resolvconf -u .
Tutti i comandi sono stati eseguiti come root dove necessario. La macchina ha la rete configurata manualmente in /etc/network/interfaces e non tramite Network Manager (non è nemmeno installato).
Fondamentalmente quello che voglio ottenere è che l'IP per alcuni host possa essere manipolato. Il motivo è che all'interno della nostra rete ottengo un IP a cui non ho alcun percorso, ma posso utilizzare l'IP esterno per quel servizio tramite HTTPS.
Cosa mi sto perdendo?
Nota: nessun server DNS è in esecuzione localmente e il nameserver righe in /etc/resolv.conf (e le rispettive righe in interfaces ) punta al server DNS che mi dà l'IP sbagliato.
Nota anche: Ho cercato sul Web e ho letto le "domande simili", ma il mio caso non sembra essere trattato.
/etc/host.conf è:
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on
Risposta accettata:
Il comando host non controlla il file hosts. Dalla manpage:
host is a simple utility for performing DNS lookups.
Se vuoi testare le ricerche rispettando il file hosts, usa ping o 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