Si dovrebbe usare il nome di dominio completo in / etc / hostname anziché hostname?


10

Come ho letto nella pagina man, si consiglia di inserire hostname (senza nome di dominio) /etc/hostname. Ad esempio, host anziché host.domainsub.domaintld. Ma, come so, alcuni software fanno affidamento sul fatto FQDNdi averli /etc/hostname.

Cosa si dovrebbe specificare /etc/hostname su macchine Debian / Ubuntu?

Se non il nome di dominio completo, dove si dovrebbe specificare il nome di dominio completo?

Lo so, la domanda è un po 'vecchia, ma non ho trovato una risposta chiara. Alcune persone dicono hostname, altre - FQDN. Grazie.


1
Dove trovi le persone che dicono che hai inserito l'FQDN nel file / etc / hostname? Quel file è solo per il nome host del sistema.
Terrance,

Durante la lettura di materiale su Internet si è incontrato da qualche parte. E dove si dovrebbe specificare il suo nome di dominio completo?
Bulat M.,

@Terrance, in realtà voglio ottenere risposte da persone esperte sul campo in modo che mostrino come farlo "giusto" dall'inizio. Scrivi come risposta. E cosa fare nelle distribuzioni che non hanno / etc / hostname?
Bulat M.

Risposte:


7

Nel file / etc / hostname si usa solo il nome host. Il nome di dominio completo che puoi impostare su: / etc / hosts che potrebbe apparire come:

127.0.1.1        thishost.mydomain.org    thishost

Secondo il manuale del file hosts.

http://man7.org/linux/man-pages/man5/hosts.5.html


1
FIX: Grazie, comunque sarebbe per conoscere i pro e contro di specificare / non specificare FQDN in / etc / hostname. Conosco la tua soluzione: è uno stub per i programmi che vogliono far sì che FQDN si risolva in qualcosa (non importa a quale indirizzo) funzioni.
Bulat M.

12

Risposta rivista:

L'host stesso non gestisce l'FQDN effettivo. Questo è gestito dal DNS . Il nome di dominio completo (nome di dominio completo) è gestito da DNS che traduce i nomi in indirizzi IP. Utilizzando il /etc/hostsfile, si sta essenzialmente scavalcando il server DNS. Il computer cerca /etc/hostsprima il file per vedere se è stata definita una voce per un nome host all'indirizzo IP. Le voci in sono /etc/hostssimili alle seguenti:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

Queste voci non sono specifiche della distro. Tutti i sistemi operativi utilizzano lo stesso formato per queste righe. hostsCambia solo la posizione del file. Linux, in genere si trova nella /etc/cartella, dove in Windows si trova in genere nella C:\Windows\System32\drivers\etc\cartella.

Rompendo quella linea, puoi vedere che sto assegnando entrambi terrance-ubuntu.local, che è il mio FQDN stesso per sovrascrivere DNS in modo che le applicazioni sappiano di non lasciare il mio computer e terrance-ubuntu, che è il nome host, di nuovo in modo che le applicazioni sappiano di non lasciare il mio computer o 127.0.0.1 ( localhost ). L'assegnazione del mio nome host del mio sistema 127.0.1.1non ha alcun effetto sul resto dei computer che trovano il mio host sulla rete. Se il DNS funziona correttamente, vedranno il mio nome host come 10.0.0.100. Il motivo dell'utilizzo 127.0.1.1è che le mie applicazioni trovano il mio sistema più veloce poiché sapranno che il mio sistema non è disponibile altrove sulla mia rete. Il mio vero nome host con l' .localessere il mio nome di dominio completo, il.local è in realtà il mio dominio che ho impostato tramite il mio router che è anche un altro server DNS sulla mia rete.

Supponiamo ora che i servizi DNS sulla rete locale non stiano assegnando nomi host o nomi di dominio completi agli indirizzi IP, ma sapete qual è l'indirizzo IP dell'host sulla rete locale. Dovresti quindi assegnare quell'host nel tuo /etc/hostsfile in modo da non dover digitare l'indirizzo IP dell'host ogni volta che vuoi accedervi. L'host potrebbe essere un server di strumenti, una stampante o qualche altro sistema connesso in rete. Aggiungi la voce come faresti normalmente al /etc/hostsfile.

Utilizzerò la mia stampante connessa in rete, ad esempio. Ha un IP statico di 10.0.0.253. Non ne conosco il nome però. Per questo, voglio chiamarlo hp_printer. Farò il ping dell'IP e il nome host per esso, quindi aggiungerò a /etc/hosts.

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

Ora, posso anche accedere alla pagina web per la mia configurazione della stampante con il nome che ho dato al posto dell'indirizzo IP che potrebbe essere più facile da ricordare:

inserisci qui la descrizione dell'immagine

Il tuo file /etc/resolv.conf viene anche utilizzato da DNS per trovare i nomi host. È il file di configurazione per il resolver. Fornisce il dominio di ricerca in modo da non dover specificare il tuo nome di dominio completo in qualsiasi momento quando cerchi un host. Fornisce inoltre l'indirizzo IP per il DNS o il nameserver della rete locale. La searchriga sotto mostra il nome localche è il mio nome di dominio.

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local

Speriamo che questo aiuti a comprendere meglio come funzionano DNS e FQDN.


perché si mappa FQDN in / etc / hosts a 127.0.1.1?
Bulat M.,

1
@BulatM. Si prega di vedere la mia risposta rivista.
Terrance,

potresti spiegare la differenza tra parole chiave di ricerca e dominio in /etc/resolv.conf? Sto leggendo la pagina man di resolv.conf, ancora non molto chiara.
Bulat M.

E si potrebbero includere entrambi? Potresti presentare un utile caso valido in risposta? Grazie.
Bulat M.

1
@BulatM. Fai clic sui collegamenti nella mia risposta e ti portano a ulteriori informazioni sulle cose. Come en.wikipedia.org/wiki/Resolv.conf fornisce molte più informazioni. Sono qui per aiutarti, non per insegnarti. Non vengo pagato, dato che è tutto volontario, quindi per favore studia da solo.
Terrance

4

La manpage dihostname(1) questo discute (il paragrafo in grassetto è enfatizzato da me):

IL FQDN
   Il nome di dominio completo (nome di dominio completo) del sistema è il nome che
   il resolver (3) restituisce il nome host, ad esempio ursula.example.com .
   Di solito è il nome host seguito dal nome di dominio DNS (la parte
   dopo il primo punto). È possibile controllare il nome FQDN utilizzando il nome host --fqdn   o
   il nome di dominio utilizzando dnsdomainname .

   Non è possibile modificare il nome FQDN con nome host o dnsdomainname .

   Il metodo raccomandato per impostare l'FQDN è rendere il nome host
   un alias per il nome completo che utilizza / etc / hosts, DNS o NIS.
   Ad esempio, se il nome host fosse "ursula", si potrebbe avere una linea in
   / etc / hosts che legge

          127.0.1.1 ursula.example.com ursula

   Tecnicamente: il nome di dominio completo è il nome getaddrinfo (3) restituito per l'host
   nome restituito da gethostname (2). Il nome del dominio DNS è la parte dopo
   il primo punto.

   Pertanto dipende dalla configurazione del resolver (di solito in
   /etc/host.conf) come puoi cambiarlo. Di solito viene analizzato il file hosts
   prima di DNS o NIS, quindi è più comune cambiare l'FQDN in
   / Etc / hosts.

E se si fornisce un nome di dominio completo come nome host durante l'installazione, scrive solo il componente pugno /etc/hostnamee mantiene il nome di dominio completo /etc/hosts.

Quindi, in questo caso, lascia che l'installer faccia quello che fa.


È (inclusione di ursula.example.com ursula 127.0.1.1 in / etc / hosts) specifico di Debian \ Ubuntu o potrebbe essere applicato ugualmente bene a qualsiasi altra distrazione?
Bulat M.,

1
Non so per altre distro. Tuttavia, puoi fare lo stesso in Arch e Cent OS. Domande su altre distro dovrebbero essere poste a Unix e Linux .
Muru,
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.