Comment définir le nom de domaine sur GNU / Linux?

27

De même pour le nom d'hôte qui peut être modifié de différentes manières:

  • utiliser temporairement la hostnamecommande
  • utilisation permanente /etc/hostname(ou /etc/sysconfig/networkou /etc/HOSTNAME, ces fichiers sont utilisés par les scripts d'initialisation)

Je souhaite changer mon nom de domaine. Je peux utiliser la domainnamecommande, mais existe-t-il un moyen de la rendre permanente après les redémarrages? Je pense qu'il peut être configuré dans /etc/resolv.confmais ce fichier est généralement généré et je ne connais pas exactement la différence entre les directives searchet domain. Et à quelle heure exactement les informations sont-elles transmises au domainnameprogramme pour définir le nom de domaine?

Avez-vous des idées à ce sujet?

J'aimerais être principalement compatible entre les distributions. Donc, si quelqu'un a des pointeurs sur les différentes versions des distributions, je les accepterais avec plaisir.

Mildred
la source
Chaque distribution fait cela différemment. Quels sont ceux qui vous intéressent? Et avez-vous lu leur documentation?
Michael Hampton
Principalement les versions RedHat et Debian. Et je n'ai pas pu trouver d'informations pertinentes dans la documentation. Mais peut-être que je n'ai pas regardé assez fort, j'avoue que je ne sais pas exactement où dans la documentation cela pourrait être (ou même s'il est dans les documents).
Mildred
1
C'est juste. Dans la documentation de Red Hat, il est enterré dans une annexe . Alors que dans Debian ce n'est pas enterré dans une annexe , mais c'est déroutant ...
Michael Hampton
1
@Michael Ce lien sur la liste de diffusion debian est surtout utile, surtout pour finalement répondre à votre question, vous configurez votre FQDN où vous voulez que les noms soient retrouvés. Si vous le voulez dans des fichiers sur la boîte elle-même, alors il va dans / etc / hosts. Si vous exécutez votre propre serveur de noms comme je le fais (je lance dnsmasq pour plus de simplicité), il vous suffit d'enregistrer les informations dans
Mildred
Sur Red Hat 7 et les systèmes dérivés, vous devez utiliser hostnamectl pour configurer le nom d'hôte. cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/…
Xavy

Réponses:

42

Définir le nom de domaine complet

J'utilise Debian 7 et c'est ce qui a fonctionné pour moi; merci à Fernando Ribeiro .

sudoedit / etc / hostname

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

activer le nom d'hôte

sudo hostname -F / etc / hostname

ajouter un nom de domaine et une adresse au serveur

sudoedit / etc / hosts

192.168.1.2   server.domain server

VÉRIFIER

> hostname --short
server

> hostname --domain
domain

> hostname --fqdn
server.domain

> hostname --ip-address
192.168.1.2
Jason
la source
après avoir changé le nom du serveur, /etc/hostnamevous ne pourrez peut-être pas le modifier /etc/hosts. Dans ce cas, vous devez utiliser xauth addcomme indiqué dans cette réponse stackoverflow.com/questions/20611783/…
Junior M
1
vous ne devriez pas utiliser sudo vim. définir $EDITORet utiliser sudoedit.
törzsmókus
5

Lorsque vous utilisez des redhat-basesystèmes, Linux utilise un /etc/sysconfig/networkfichier et vous devez définir une variable HOSTNAMEsur FQDN, lorsque vous utilisez FQDN, linuxelle - même détermine le nom de domaine.

Par exemple:

HOSTNAME=web.mydomain.com

Mais lorsque vous utilisez des debian-basesystèmes, vous devez remplir le /etc/hostnamefichier avec FQDN:

web.mydomain.com

REMARQUE: si vous souhaitez définir, domain nameassurez-vous de définir FQDN(Nom de domaine entièrement qualifié)

Lorsque vous définissez, hostname -dvous montre le domain name.

Golfe Persique
la source
1
Merci, mais j'avais l'impression que ces fichiers ne devraient contenir que le nom d'hôte sans la partie domaine. Si je fais ce que vous proposez, hostname retournera directement le fqdn (aucune différence entre hostnameet hostname -f).
Mildred
oh au fait, j'oublie de dire que vous devez définir le nom d'hôte à la main hostname web.mydomain.comaprès avoir configuré vos fichiers. car lorsque vous configurez la mémoire de votre fichier, vous ne pouvez pas appliquer les modifications (si c'était utile, n'oubliez pas l'indicateur utile)
PersianGulf
4

man hostname, cité de sa fin au début

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.

Je dirais que cela décrit le tout à fond.

poige
la source