Come impostare il nome di dominio su GNU / Linux?


27

Analogamente al nome host che può essere modificato in diversi modi:

  • usando temporaneamente il hostnamecomando
  • uso permanente /etc/hostname(o /etc/sysconfig/networko /etc/HOSTNAME, questi file sono usati dagli script init)

Voglio cambiare il mio nome di dominio. Posso usare il domainnamecomando, ma c'è un modo per renderlo permanente attraverso i riavvii? Penso che possa essere configurato /etc/resolv.confma questo file è generalmente generato e non conosco esattamente la differenza tra searche le domaindirettive. E a che ora esattamente le informazioni vengono passate al domainnameprogramma per impostare il nome di dominio?

Hai qualche idea al riguardo?

Mi piacerebbe essere maggiormente compatibile con tutte le distribuzioni. Quindi, se qualcuno avesse dei suggerimenti sui diversi gusti delle distribuzioni, li accetterei volentieri.


Ogni distribuzione lo fa diversamente. A quali sei interessato? E hai letto la loro documentazione?
Michael Hampton

Principalmente sapori RedHat e Debian. E non sono riuscito a trovare informazioni rilevanti nella documentazione. Ma forse non ho guardato abbastanza, ammetto di non sapere esattamente dove potrebbe trovarsi nella documentazione (o anche se si trova nei documenti).
Mildred,

1
È giusto. Nella documentazione di Red Hat, è sepolto in un'appendice . Mentre in Debian non è sepolto in un'appendice , ma è confuso ...
Michael Hampton

1
@Michael Questo link sulla mailing list debian è per lo più utile, specialmente per rispondere finalmente alla tua domanda, configura il tuo FQDN dove vuoi che i nomi vengano rimossi. Se lo vuoi nei file sulla scatola stessa, va in / etc / hosts. Se esegui il tuo server dei nomi come faccio io (eseguo dnsmasq per semplicità), devi solo registrare le informazioni in
Mildred

Su red hat 7 e sui sistemi derivati ​​dovresti usare hostnamectl per impostare il nome host. cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/…
Xavy

Risposte:


42

Imposta FQDN

Sto usando Debian 7 e questo è ciò che ha funzionato per me; grazie a Fernando Ribeiro .

sudoedit / etc / hostname

server # here's where you put the server's host name

attiva il nome host

sudo hostname -F / etc / hostname

aggiungi il nome dominio e l'indirizzo al server

sudoedit / etc / hosts

192.168.1.2   server.domain server

VERIFICARE

> hostname --short
server

> hostname --domain
domain

> hostname --fqdn
server.domain

> hostname --ip-address
192.168.1.2

dopo aver cambiato il nome del server /etc/hostnamepotrebbe non essere possibile modificarlo /etc/hosts. In questo caso devi usare xauth addcome indicato in questa risposta stackoverflow.com/questions/20611783/…
Junior M

1
non dovresti usare sudo vim. impostare $EDITORe utilizzare sudoedit.
törzsmókus,

5

Quando usi i redhat-basesistemi, linux usa il /etc/sysconfig/networkfile e dovresti impostare la variabile HOSTNAMEsu FQDN, quando usi FQDN, linuxdetermina il nome di dominio.

Per esempio:

HOSTNAME=web.mydomain.com

Ma quando usi i debian-basesistemi, dovresti riempire il /etc/hostnamefile con FQDN:

web.mydomain.com

NOTA: se si desidera impostare, domain nameaccertarsi di aver impostato FQDN(Nome dominio completo)

Quando si imposta, hostname -dti mostra il domain name.


1
Grazie, ma avevo l'impressione che questi file dovrebbero contenere solo il nome host senza la parte del dominio. Se faccio ciò che mi suggerisci, hostname restituirà direttamente fqdn (nessuna differenza tra hostnamee hostname -f).
Mildred,

oh, a proposito, ho dimenticato di dire che dovresti impostare il nome host a mano hostname web.mydomain.comdopo aver configurato i tuoi file. perché quando si configura la memoria del file non è possibile applicare le modifiche (se utile, non dimenticare la bandiera utile)
PersianGulf

4

man hostname, essendo citato dalla sua fine all'inizio

FILES
       /etc/hostname  Historically  this file was supposed to only contain the hostname and not the full canonical
       FQDN. Nowadays most software is able to cope with a full FQDN here. This file is read at boot time  by  the
       system initialization scripts to set the hostname.

       /etc/hosts Usually, this is where one sets the domain name by aliasing the host name to the FQDN.

...

   THE FQDN
       The  FQDN (Fully Qualified Domain Name) of the system is the name that the resolver(3) returns for the host
       name, such as, ursula.example.com.  It is usually the hostname followed by the DNS domain  name  (the  part
       after the first dot).  You can check the FQDN using hostname --fqdn or the domain name using dnsdomainname.

       You cannot change the FQDN with hostname or dnsdomainname.

       The recommended method of setting the FQDN is to make the hostname be an alias for the fully qualified name
       using /etc/hosts, DNS, or NIS. For example, if the  hostname  was  "ursula",  one  might  have  a  line  in
       /etc/hosts which reads

              127.0.1.1    ursula.example.com ursula

       Technically: The FQDN is the name getaddrinfo(3) returns for the host name returned by gethostname(2).  The
       DNS domain name is the part after the first dot.

       Therefore it depends on the configuration of the resolver (usually in /etc/host.conf) how  you  can  change
       it.  Usually  the  hosts  file  is  parsed  before  DNS  or NIS, so it is most common to change the FQDN in
       /etc/hosts.

       If a machine has multiple network interfaces/addresses or is used in a  mobile  environment,  then  it  may
       either  have  multiple  FQDNs/domain  names or none at all. Therefore avoid using hostname --fqdn, hostname
       --domain and dnsdomainname.  hostname --ip-address is subject to the  same  limitations  so  it  should  be
       avoided as well.

Direi che descrive l'intera cosa a fondo.

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.