Как установить доменное имя на GNU / Linux?

27

Аналогично имени хоста, которое можно изменить различными способами:

  • временно используя hostnameкоманду
  • постоянное использование /etc/hostname(или /etc/sysconfig/networkили /etc/HOSTNAMEэти файлы используются скриптами инициализации)

Я хочу изменить свое доменное имя. Я могу использовать domainnameкоманду, но есть ли способ сделать ее постоянной при перезагрузке? Я думаю , что он может быть настроен , /etc/resolv.confно этот файл обычно генерируется , и я не знаю точно разницы между searchи domainдирективами. И в какое время именно информация передается domainnameпрограмме для установки доменного имени?

У вас есть идеи по этому поводу?

Я хотел бы быть в основном совместимым между дистрибутивами. Так что, если у кого-то есть указатели на разные дистрибутивы, я с радостью приму их.

Милдред
источник
Каждый дистрибутив делает это по-своему. Какие из них вас интересуют? А вы читали их документацию?
Майкл Хэмптон
В основном RedHat и Debian. И я не смог найти соответствующую информацию в документации. Но, возможно, я не выглядел достаточно усердно, я признаю, что точно не знаю, где в документации это может быть (или даже если это есть в документации).
Милдред
1
Это честно. В документации Red Hat он похоронен в приложении . В то время как в Debian он не похоронен в приложении , но это сбивает с толку ...
Майкл Хэмптон
1
@Michael Эта ссылка в списке рассылки debian в основном полезна, особенно, поэтому, чтобы, наконец, ответить на ваш вопрос, вы настраиваете свое полное доменное имя везде, где вы хотите, чтобы имена обновлялись. Если вы хотите это в файлах на самой коробке, то это идет в / etc / hosts. Если вы запускаете свой собственный сервер имен, как я (для простоты я запускаю dnsmasq), вам нужно только записать информацию в
Mildred
В Red Hat 7 и производных системах вы должны использовать hostnamectl для установки имени хоста. cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/…
Xavy

Ответы:

42

Установить полное доменное имя

Я использую Debian 7, и это то, что сработало для меня; спасибо Фернандо Рибейро .

sudoedit / etc / hostname

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

активировать имя хоста

имя хоста sudo -F / etc / hostname

добавить доменное имя и адрес на сервер

sudoedit / etc / hosts

192.168.1.2   server.domain server

ПРОВЕРКИ

> hostname --short
server

> hostname --domain
domain

> hostname --fqdn
server.domain

> hostname --ip-address
192.168.1.2
Ясон
источник
после изменения имени сервера /etc/hostnameвы не сможете редактировать /etc/hosts. В этом случае вы должны использовать, xauth addкак указано в этом ответе stackoverflow.com/questions/20611783/…
Junior M
1
Вы не должны использовать sudo vim. установить $EDITORи использовать sudoedit.
törzsmókus
5

Когда вы используете redhat-baseсистемы, linux использует /etc/sysconfig/networkфайл, и вы должны установить переменную HOSTNAMEна FQDN, когда вы используете FQDN, linuxсамо определяет доменное имя.

Например:

HOSTNAME=web.mydomain.com

Но когда вы используете debian-baseсистемы, вы должны заполнить /etc/hostnameфайл FQDN:

web.mydomain.com

ПРИМЕЧАНИЕ: если вы хотите установить domain name, обязательно установите FQDN(Полное имя домена)

Когда вы установите, hostname -dпоказывает вам domain name.

Персидский залив
источник
1
Спасибо, но у меня сложилось впечатление, что эти файлы должны содержать только имя хоста без доменной части. Если я сделаю то, что вы предлагаете, hostname вернет fqdn напрямую (без разницы между hostnameи hostname -f).
Милдред
о, кстати, я забыл сказать, что вы должны установить имя хоста вручную hostname web.mydomain.comпосле настройки ваших файлов. потому что, когда вы настраиваете свою файловую память, вы не можете применить изменения (если это было полезно, не забывайте полезный флаг)
PersianGulf
4

man hostnameцитируется с конца до начала

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.

Я бы сказал, что это полностью описывает все это.

poige
источник