it-swarm.it

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

Incollato di seguito questa domanda è un esempio di un file /etc/hosts Da un computer Linux (CentOS) e Windows. Il file Linux ha due voci a schede dopo l'indirizzo IP (ovvero localhost.localdomain localhost) e Windows ne ha solo una. Se voglio modificare il file hosts in Windows per avere il nome della macchina (etest) invece di localhost, devo semplicemente sostituire il localhost di Word con il nome della macchina che desidero. Non è necessario che la macchina faccia parte di un dominio.

In una macchina Linux, le due voci localhost.localdomain E localhost sembrano indicare che avrò bisogno che la macchina faccia parte di un dominio. È vero?

Posso semplicemente modificare entrambe le voci in etest in modo che legga:

127.0.0.1       etest etest

o è necessario sostituire una voce con un nome di dominio?

Inoltre, per favore fatemi sapere a cosa serve la seconda riga del file /etc/hosts Sulla macchina Linux.

::1     localhost6.localdomain6 localhost6

hosts file su una macchina Linux:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

hosts file su un computer Windows:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to Host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding Host name.
# The IP address and the Host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client Host

127.0.0.1       localhost
24
Thomas

Si desidera sempre che l'indirizzo 127.0.0.1 si risolva prima in localhost. Se esiste un dominio puoi usarlo anche tu, ma assicurati che localhost sia elencato secondo. Se si desidera aggiungere alias per il proprio computer che cercheranno l'indirizzo di loopback, è possibile continuare ad aggiungerli come valori separati da spazio su quella riga. Specificare qui un dominio è facoltativo, ma non rimuovere "localhost" dalle opzioni.

14
Caleb

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

IP address        hostname [hostalias]...

dove le parentesi sono il solito modo di indicare che qualcosa è facoltativo (in realtà non digitarle) e i punti (...) significa che può essercene più di uno.

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

Tieni presente 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 nell'ambito del nuovo schema di indirizzamento. Correre 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.

23
Mikel

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

Il formato che trovo funziona in modo molto coerente è questo:

127.0.0.1 etest.mydomain.com etest localhost

La cosa importante che ho trovato è avere prima il nome di dominio completo e gli alias, in qualsiasi ordine, dopo di esso.

Se si sperimenta la riorganizzazione dei nomi dopo l'indirizzo IP e quindi l'utilizzo dei comandi 'hostname -s' (nome breve) e 'hostname -f' (nome di dominio completo o FQDN) vedrai cosa intendo. Dovrebbe assomigliare a qualcosa di simile a questo:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

'hostname' da solo dovrebbe restituire qualsiasi nome inserito per l'host in /etc/conf.d/hostname o/etc/hostname (la posizione del file varia in base alla 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'unico accordo che ho scoperto che funziona correttamente è quello di mettere prima l'FQDN.

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

::1 etest.mydomain.com etest localhost

Conosco alcune distribuzioni che 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 per avere entrambe le linee con gli stessi nomi.

6
Angelo Babudro

Mantieni il file hosts di Slaves come

127.0.0.1 localhost

Mantieni il file Host principale come

<private ip> master
<private ip> slave1
<private ip> slave2

100% funzionante

0
Puneet