Como definir o nome de domínio no GNU / Linux?

27

Da mesma forma que o nome do host que pode ser alterado de diferentes maneiras:

  • temporariamente usando o hostnamecomando
  • permanentemente usando /etc/hostname(ou /etc/sysconfig/networkou /etc/HOSTNAME, esses arquivos são usados ​​pelos scripts init)

Eu quero mudar meu nome de domínio. Posso usar o domainnamecomando, mas existe uma maneira de torná-lo permanente nas reinicializações? Acho que pode ser configurado, /etc/resolv.confmas esse arquivo geralmente é gerado e não sei exatamente a diferença entre searche domaindiretivas. E a que horas exatamente as informações são passadas para o domainnameprograma para definir o nome do domínio?

Você tem alguma idéia sobre isso?

Eu gostaria de ser principalmente compatível entre distribuições. Portanto, se alguém tiver dicas sobre os diferentes sabores das distribuições, eu os aceitaria com prazer.

Mildred
fonte
Toda distribuição faz isso de maneira diferente. Em quais você está interessado? E você leu a documentação deles?
Michael Hampton
Principalmente sabores RedHat e Debian. E não consegui encontrar informações relevantes na documentação. Mas talvez não tenha me esforçado o suficiente, admito que não sei exatamente onde está a documentação (ou mesmo se está nos documentos).
precisa
11
Isso é justo. Na documentação da Red Hat, está enterrada em um apêndice . Enquanto estiver no Debian, ele não está enterrado em um apêndice , mas é confuso ...
Michael Hampton
11
@ Michael Este link na lista de discussão debian é muito útil, especialmente Então, para finalmente responder sua pergunta, você configura seu FQDN onde quer que os nomes sejam redigitados. Se você quiser em arquivos na própria caixa, então ele entra em / etc / hosts. Se você executar o seu próprio servidor de nome como eu (eu corro dnsmasq para simplificar), então você só tem que registrar as informações em
Mildred
No red hat 7 e sistemas derivados, você deve usar o hostnamectl para configurar o nome do host. cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/...
Xavy

Respostas:

42

Definir FQDN

Estou usando o Debian 7 e é isso que funcionou para mim; graças a Fernando Ribeiro .

sudoedit / etc / hostname

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

ativar nome do host

sudo hostname -F / etc / hostname

adicionar nome de domínio e endereço ao servidor

sudoedit / etc / hosts

192.168.1.2   server.domain server

VERIFICAR

> hostname --short
server

> hostname --domain
domain

> hostname --fqdn
server.domain

> hostname --ip-address
192.168.1.2
Jason
fonte
depois de alterar o nome do servidor, /etc/hostnametalvez você não consiga editar /etc/hosts. Nesse caso, você deve usar xauth addcomo indicado nesta resposta stackoverflow.com/questions/20611783/…
Junior M
11
você não deve usar sudo vim. definir $EDITORe usar sudoedit.
törzsmókus 8/06
5

Quando você usa redhat-basesistemas, o linux usa /etc/sysconfig/networkarquivo e você deve definir a variável HOSTNAMEcomo FQDN, quando usar FQDN, linuxela própria determina o nome do domínio.

Por exemplo:

HOSTNAME=web.mydomain.com

Mas quando você usa debian-basesistemas, você deve preencher o /etc/hostnamearquivo com FQDN:

web.mydomain.com

NOTA: se você deseja configurar, domain namecertifique-se de definir FQDN(nome de domínio totalmente qualificado)

Quando você define, hostname -dmostra o domain name.

PersianGulf
fonte
11
Obrigado, mas fiquei com a impressão de que esses arquivos deveriam conter apenas o nome do host sem a parte do domínio. Se eu fizer o que você sugere, o hostname retornará o fqdn diretamente (nenhuma diferença entre hostnamee hostname -f).
precisa
ah, a propósito, eu esqueço de dizer que você deve definir o nome do host manualmente hostname web.mydomain.comdepois de configurar seus arquivos. . porque quando você configurar sua memória arquivo não pode aplicar as alterações (se ele foi útil, não se esqueça flag útil)
Golfo Pérsico
4

man hostname, sendo citada do início ao fim

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.

Eu diria que descreve a coisa toda completamente.

poige
fonte