Perché il mio nome host appare con l'indirizzo 127.0.1.1 anziché 127.0.0.1 in / etc / hosts?


205

Questa potrebbe essere una domanda un po 'noobish, ma stavo dando un'occhiata a / etc / hosts sulla mia nuova installazione di Xubuntu e ho visto questo:

127.0.0.1 localhost
127.0.1.1 myhostname

Sulla maggior parte dei nix che ho usato, la seconda riga è omessa e se voglio aggiungere il mio nome host al file hosts, farei solo questo:

127.0.0.1 localhost myhostname

C'è una differenza tra questi due file in senso pratico?


Mi chiedo: posso semplicemente eliminare la seconda riga o qualche processo in debian / ubuntu rigenera la riga e la aggiunge di nuovo?
simgineer

Risposte:


159

Non c'è molta differenza tra i due; 127/8(ad esempio: 127.0.0.0=> 127.255.255.255) sono tutti associati all'interfaccia di loopback.

Il motivo per cui è documentato nel manuale Debian nel cap. 5 Impostazione della rete - 5.1.1. La risoluzione del nome host .

In definitiva, è una soluzione alternativa ai bug; il rapporto originale è 316099 .


5
Il vero motivo: "Associare il nome host di sistema a quest'ultimo ha avuto l'effetto indesiderato di rendere 'localhost.localdomain' il nome host canonico associato al nome host di sistema. Cioè, 'hostname --fqdn' ha restituito 'localhost.localdomain'."
cmroanirgo,

L'ho effettivamente rintracciato in questo documento lists.debian.org/debian-boot/2005/06/msg00938.html e sembra che sia perché Thomas sentiva il bisogno di usare 1.1 invece di 0.1, che sono equivalenti, correggimi se sbaglio, ma ciò significa che questa risposta è davvero solo una briciola di pane?
Brian Thomas,

@BrianThomas quel messaggio suggerisce perché non sono equivalenti. Volevano localhoste myhostnameessere distinti - altrimenti, uno sarebbe un alias dell'altro. Nota che non funziona in IPv6 dove esiste un solo indirizzo di loopback. Può essere evitato usando un modulo NSS come indicato nel thread, perché può essere più flessibile di / etc / hosts e restituire nomi canonici diversi nonostante abbiano lo stesso indirizzo IP. Lo so perché il mio sistema è configurato utilizzando un tale modulo NSS .
FonteJedi

46

Per riassumere le informazioni collegate:

  • È utile (in modo discutibile) inserire una voce nella /etc/hoststraduzione del nome di dominio completo della macchina nel suo indirizzo IP permanente.
  • debian-installere, più specificamente, il suo netcfgcomponente, attualmente (almeno fino a marzo 2013) crea questa voce.
  • Se la macchina non è nota per avere un indirizzo IP permanente, il debian-installer desidera ancora che abbia quel tipo di voce.
  • L'indirizzo 127.0.1.1utilizza l' interfaccia di loopback , a cui risponde la propria macchina, proprio come 127.0.0.1ma è una voce distinta in /etc/hostscui può essere considerata separatamente da 127.0.0.1se / quando necessario.

Thomas Hood spiega come aggiungere questa voce come segue:

[Questo] assicurerà che se il nome host UNIX viene risolto, sarà sempre il suo nome host canonico

ma:

A lungo termine il nome host UNIX non dovrebbe essere inserito in / etc / hosts.


.. e così... ? devo usare 127.0.0.1 per il mio fdqn? o 127.0.1.1? o l'IP lan statico?
Realtebo,

1
@realtebo: 1. È utile e quindi viene aggiunto dall'installer. 2. Non c'è "must" qui; ed è rilevante solo quando il tuo FQDN non ha un indirizzo permanente.
einpoklum,

9

Ero curioso me stesso, e non mi piaceva nessuna delle altre risposte perché non sembravano rispondere a quello che stavo cercando almeno.

La risposta: guardando indietro a questo documento sembra quasi che Thomas stia affermando che gli sta dando un altro IP dedicato sul loopback che gli permette di essere canonico.

Entrambi indicano il loopback. L'uso del seguente 127.0.1.1 è un IP effettivo, sul loopback, mentre 127.0.0.1 è il dispositivo stesso o un altro IP sul loopback. Entrambi finiscono sulla stessa sottorete, che rappresenta il loopback, ma sono separati da ip. Sono dns equivalenti saggi, ma separati a causa dell'ip dedicato.

Il punto è che puoi avere tutte le voci su una riga come questa

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Se il tuo hostname è locale, il che significa che non ha una voce DNS Internet globale mappata su un vero IP Internet, in questo caso Thomas stava dicendo che DEVI avere la 2a riga di ingresso, in questo modo per dedicarla lì (al canonico).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname

in tutta onestà, dopo aver finalmente composto questo in un modo che aveva senso per me, vedo che è praticamente quello che Einpoklum stava cercando di spiegare che sembra col senno di poi.
Brian Thomas,

OK voto negativo, non so perché. Credo ancora che QUESTA sia la risposta MIGLIORE, o non l'avrei messa, dopo l'atterraggio qui. la risposta originale ha aiutato, ma non ha catturato tutti i dettagli. Vorrei andare con questo.
Brian Thomas,
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.