GNU/Linux >> Linux Esercitazione >  >> Linux

Formato di /etc/hosts su Linux (diverso da Windows?)

Il formato di /etc/hosts su Linux e Windows è lo stesso:

IP address        hostname [hostalias]...

dove le parentesi sono il solito modo per indicare che qualcosa è facoltativo (non scriverle effettivamente) e i punti (... ) significa che può essercene più di uno.

Non dovresti rendere il tuo host parte di un dominio. Provalo e vedrai. Ma sarebbe una buona idea usare .localdomain se non hai un vero nome di dominio. Può rendere la risoluzione del nome host un po' più veloce grazie al ndots opzione in /etc/resolv.conf .

Nota che in questo senso, dominio significa dominio DNS (come google.com o stackexchange.com ), non un dominio Windows o qualcosa del genere.

La riga che inizia con ::1 è per IPv6. ::1 è come 127.0.0.1 secondo il nuovo schema di indirizzamento. Esegui ifconfig lo e dovresti vedere che ha due indirizzi. Nota la voce che inizia con inet6 .

$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
...

Vedi la pagina man hosts(5) per maggiori dettagli.


Vuoi sempre che l'indirizzo 127.0.0.1 venga risolto prima in localhost. Se c'è un dominio puoi usare anche quello, ma assicurati che localhost sia elencato per secondo. Se vuoi aggiungere alias per la tua macchina che cercherà l'indirizzo di loopback, puoi continuare ad aggiungerli come valori separati da spazio su quella riga. Specificare un dominio qui è facoltativo, ma non rimuovere "localhost" dalle opzioni.


Non posso parlare di come Windows possa differire da Linux, ma il formato della definizione della macchina locale influisce sui risultati che otterrai dal comando 'hostname'.

Il formato che trovo funzioni più costantemente bene è questo:

127.0.0.1 etest.mydomain.com etest localhost

La cosa importante che ho trovato è avere prima l'FQDN e gli alias, in qualsiasi ordine, dopo.

Se provi a riorganizzare i nomi dopo l'indirizzo IP e quindi a utilizzare i comandi 'hostname -s' (nome breve) e 'hostname -f' (nome di dominio completo o FQDN), capirai cosa intendo. Dovrebbe assomigliare a questo:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

'hostname' da solo dovrebbe restituire qualsiasi nome tu abbia inserito per l'host in /etc/conf.d/hostname o /etc/hostname (la posizione del file varia a seconda della distribuzione, ma dovrebbe essere trovata sotto /etc da qualche parte).

Se cambi l'ordine dei nomi potresti scoprire che "hostname -f" ti dà risposte come "localhost" o "hostname:errore di sistema". L'unica disposizione che ho trovato che funziona correttamente è l'inserimento dell'FQDN al primo posto.

Ho sempre impostato la riga dell'indirizzo locale IPv6 (::1) allo stesso modo, ovvero:

::1 etest.mydomain.com etest localhost

So che alcune distribuzioni impostano il nome IPv6 su qualcosa come ip6-localhost. Non uso ancora IPv6, quindi non posso commentare quali sarebbero le migliori impostazioni per questa linea. Posso solo dire che in una rete IPv4 funziona avere entrambe le linee con gli stessi nomi.


Linux
  1. Creare un file host specifico per l'utente per completare /etc/hosts?

  2. Linux – Unire /usr/bin e /usr/sbin in /bin (gnu/linux)?

  3. Opzioni di comando TCP Wrapper (hosts.allow e hosts.deny) in Linux

  4. Qual è la connessione tra le directory /etc/init.d e /etc/rcX.d in Linux?

  5. Nel mio file /etc/hosts/ su Linux/OSX, come creo un sottodominio con caratteri jolly?

Passaggio da Windows a Linux

Limita l'accesso ai server Linux utilizzando i wrapper TCP

Come accedere alle partizioni Linux da Windows 10

Il modo giusto per modificare i file /etc/passwd e /etc/group in Linux

come modificare /etc/hosts dagli script di shell?

Limite dimensione di /etc/hosts (Linux)