il file hosts sembra essere ignorato


18

Ho una scatola desktop Ubuntu quasi nuova. Il sistema operativo è stato installato due settimane fa e aggiornato dai repository karmici. La scorsa settimana non ho avuto problemi con il DNS. Ma questa settimana qualcosa è cambiato. Non sono sicuro di cosa e quando e non sono sicuro di aver modificato le configurazioni.

Quindi ora ho una situazione davvero strana. Secondo i registri, la risoluzione dei nomi dovrebbe funzionare normalmente.

/ etc / hosts

127.0.0.1   localhost test
127.0.1.1   desktop

/etc/host.conf

order hosts,bind
multi on

/etc/resolv.conf

# Generated by NetworkManager
search search servers obtained via DHCP
nameserver 192.168.0.3

/etc/nsswitch.conf

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Ma se non lo è.

user @ test ~> test ping

PING localhost (127.0.0.1) 56(84) bytes of data.
[skip]

Il ping è ok.

user @ test ~> test host

test.mydomain.com has address xx.xxx.161.201

Ho il sospetto che NetworkManager possa causare questo comportamento scorretto, ma non so da dove cominciare per verificarlo. Qualche idea, suggerimento?

Risposte:


20

Con questa configurazione, la maggior parte delle applicazioni funzionerà felicemente con la tua voce /etc/hosts.

tuttavia host non guarda /etc/nsswitch.conf. Questo è in base alla progettazione, non per caso, poiché hostè specificamente un programma di ricerca DNS. /etc/hostsnon è DNS, è (principalmente) quello che abbiamo usato prima di avere DNS.

Lo stesso vale anche per dige nslookup- sono anche specifici per DNS.


Quindi, stai dicendo, l' hostutilità non usa /etc/hosts? E non c'è niente da risolvere nel mio caso?
z4y4ts,

sì, praticamente - niente da vedere qui :)
Alnitak

Quello che non capisco è che host> era <essere il comando "normale" di ricerca dei nomi, obbedendo/etc/nsswitch.conf
mveroone il

@Kwaio Non riesco a trovare prove nelle fonti ISC che hostabbiano mai fatto
Alnitak,

Beh, avrei potuto usare implementazioni di distribuzione insolite, quindi, male.
mveroone,

15

Il hostcomando (insieme a dige nslookup) fa parte delle bindutilità DNS. Come utility di risoluzione DNS, esegue solo la risoluzione DNS.

Se sei interessato a recuperare una voce da qualsiasi libnssarchivio dati guidato, puoi utilizzare il getentprogramma. Per ottenere una voce host, ad esempio, usala in questo modo:

getent hosts google.com

Ciò segue l'ordine di risoluzione indicato hosts:in /etc/nsswitch.confin ordine, che include /etc/hostsse "file" è selezionato come una delle opzioni.


Grazie per avermi ricordato il getentcomando.
Emmanuel,

2
Credo che al giorno d'oggi si dovrebbe usare getent ahostsinvece di getent hostsperché getent hostsusi gethostbyaddr()o gethostbyname*()che sono obsoleti. Se ho capito bene, getent hostsemula quanti vecchi programmi UNIX C funzionavano ed getent ahostsemula il modo in cui dovrebbero funzionare i programmi moderm.
Mikko Rantalainen,

0

Per me questo problema si è verificato a causa di autorizzazioni di file errate. Solo root poteva leggere / etc / hosts. Il file dovrebbe essere leggibile in tutto il mondo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.