Linux изменить имя домена

How to set the domain name on GNU/Linux?

I want to change my domain name. I can use the domainname command, but is there a way to make it permanent across reboots? I think it can be configured in /etc/resolv.conf but this file is generally generated and I don’t know exactly the difference between search and domain directives. And at what time exactly the information there is passed to the domainname program to set the domain name?

Do you have any ideas on that?

I’d like to be mostly compatible across distributions. So if if anyone has pointers on the different distributions flavours, I’d gladly accept them.

Every distribution does this differently. Which ones are you interested in? And did you read their documentation?

Mostly RedHat and Debian flavours. And I couldn’t find relevant information in the documentation. But perhaps I haven’t looked hard enough, I admit I don’t know exactly where in the documentation it could be (or even if it is in the docs).

That’s fair. In Red Hat’s documentation, it’s buried in an appendix. While in Debian’s it’s not buried in an appendix, but it is confusing.

@Michael This link on the debian mailing list is mostly useful, especially So to finally answer your question, you configure your FQDN wherever you want names resovled. If you want it in files on the box itself, then it goes in /etc/hosts. If you run your own name server like I do (I run dnsmasq for simplicity) then you only have to record the information in

On red hat 7 and derived systems you should use hostnamectl to set up the hostname. cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/…

3 Answers 3

Set FQDN

I’m using Debian 7 and this is what worked for me; thanks to Fernando Ribeiro.

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

activate hostname

add domain name and address to the server

192.168.1.2 server.domain server 

VERIFY

> hostname --short server > hostname --domain domain > hostname --fqdn server.domain > hostname --ip-address 192.168.1.2 

after changing server name in /etc/hostname you might not be able to edit /etc/hosts . In this case you have to use xauth add as stated in this answer stackoverflow.com/questions/20611783/…

Читайте также:  Kaspersky anti spam linux

When you use redhat-base systems, linux uses /etc/sysconfig/network file and you should set variable HOSTNAME to FQDN , when you use FQDN , linux itself determines domain name.

But when you use debian-base systems, you should fill /etc/hostname file with FQDN :

NOTE: if you want to set domain name be sure set FQDN (Fully Qualyfied Domain Name)

When you set, hostname -d shows you the domain name .

Thank you, but I was under the impression that these files should only contain the hostname without the domain part. If I do what you suggest, hostname will return the fqdn directly (no difference between hostname and hostname -f ).

oh by the way, i forget to say you should set hostname by hand hostname web.mydomain.com after configure your files. because when you configure your file memory can’t apply changes.(if it was useful, don’t forget useful flag)

man hostname , being cited from its end to beginning

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. 

I’d say it does describe the whole thing thoroughly.

Читайте также:  Linux администрирование рабочих станций

Источник

Как изменить имя домена Debian Linux

Я никогда не мог полностью понять, как изменить имя хоста Linux и имя домена, и теперь оно возвращается и кусает меня снова — мое имя домена Linux пустое (имя domainname дает (none) ), и я просто не могу изменить его обратно:

$ hostname coral $ hostname -f coral $ hostname -d $ hostname -d | wc 0 0 0 $ domainname (none) $ dnsdomainname $ dnsdomainname | wc 0 0 0 $ cat /etc/hostname coral $ head -1 /etc/hosts 127.0.0.1 localhost.my.domain.org localhost $ cat /etc/resolv.conf # Fixed resolv.conf file domain my.domain.org search my.domain.org nameserver 192.168.2.102 $ time dig coral ;; ANSWER SECTION: coral. 0 IN A 192.168.2.102 real 0m0.038s user 0m0.032s sys 0m0.004s 
  1. Использование псевдонима имя хоста в /etc/hosts для определения полного доменного имени кажется правильным ответом, однако я уже сделал это, увидев приведенную выше запись localhost.my.domain.org . Я не поместил свое имя хоста (коралл) в /etc/hosts потому что я не хочу, чтобы мое имя хоста разрешалось до 127.0.0.1 а вместо реального IP, который я получил от своего DNS-сервера.
  2. Я выполнил трассировку hostname -f , но не могу найти никаких проблем из журнала. Я могу поставить это здесь, если кому-то интересно.

Как следствие, существует большая (сетевая) задержка для запуска и остановки моего сервера sendmail.

Сегодня hostname -f , hostname -d & dnsdomainname теперь работают нормально. Я ничего не делал, кроме того, что снова проследил hostname -f . Я должен был проследить до нового файла, но я не сделал. Так что теперь он работает, и я до сих пор не знаю, почему он работает сейчас, и почему он не работал раньше. Более того, даже когда все работает, мой sysctl kernel.domainname все еще сообщает (none) . Это так странно и запутанно.

$ uptime 21:33:36 up 2 days, 1:36, 5 users, load average: 0.22, 0.43, 0.29 $ sysctl kernel.domainname kernel.domainname = (none) 

И вышеупомянутая (сетевая) задержка подключения к моему серверу sendmail также прошла. Итак, мой вывод заключается в том, что все, что я делал выше, было правильным, но каким-то образом мистически потребовалось много времени, чтобы моя Ubuntu 17.04 поняла это.

Читайте также:  Linux icon for apps

В любом случае, я приму ответ Джейка Гулда, так как у него есть что-то новое в том, как использовать sysctl и kernel.hostname .
Спасибо всем, кто помог!

Источник

Как установить или изменить имя хоста в Linux

По умолчанию системное имя хоста задается во время процесса установки или, если вы создаете виртуальную машину, оно динамически назначается экземпляру при запуске, но бывают ситуации, когда вам нужно изменить его.

Это руководство проведет вас через процесс изменения имени хоста в Linux без перезапуска системы. Инструкции должны работать с любым современным дистрибутивом Linux, использующим systemd.

Что такое имя хоста

Имя хоста — это метка, присвоенная машине, которая идентифицирует машину в сети. Каждое устройство в сети должно иметь уникальное имя хоста.

Имя хоста может быть простой строкой, содержащей буквенно-цифровые символы, точки и дефисы. Если машина подключена к Интернету (например, к веб-серверу или почтовому серверу), рекомендуется использовать полное доменное имя (FQDN) в качестве имени хоста системы. Полное доменное имя состоит из двух частей: имени хоста и имени домена.

Отображение текущего имени хоста

В системах Linux, использующих systemd, команду hostnamectl можно использовать для запроса и изменения имени хоста и связанных настроек на данном компьютере.

Чтобы просмотреть текущее имя хоста, вызовите команду hostnamectl без аргументов:

Имя хоста системы выделено на изображении ниже:

Изменение имени хоста

Чтобы изменить имя хоста, вызовите команду hostnamectl с аргументом set-hostname за которым следует новое имя хоста. Только root или пользователь с привилегиями sudo может изменить системное имя хоста.

Например, чтобы изменить системное имя хоста на mail.linuxize.com , вы должны использовать следующую команду:

sudo hostnamectl set-hostname mail.linuxize.com

Команда hostnamectl не выводит данные. В случае успеха возвращается 0 , в противном случае — ненулевой код ошибки.

Наконец, чтобы убедиться, что имя хоста было успешно изменено, еще раз используйте команду hostnamectl :

Новое имя хоста системы и некоторая дополнительная системная информация, такая как версия ядра, будет отображаться на терминале.

 Static hostname: mail.linuxize.com Icon name: computer-vm Chassis: vm Machine ID: 70a3f06298014fd9ac42e5dc1de1034a Boot ID: 6d45a1a8d436418e97519da01ea61c1b Virtualization: oracle Operating System: Debian GNU/Linux 10 (buster) Kernel: Linux 4.19.0-5-amd64 Architecture: x86-64 

Выводы

В этом руководстве мы показали вам, как изменить имя хоста вашей системы Linux. В зависимости от вашего дистрибутива Linux и типа виртуализации для завершения процесса могут потребоваться дополнительные шаги.

Инструкции для конкретного дистрибутива можно найти в следующих статьях:

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Оцените статью
Adblock
detector