Как изменить доменное имя в 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 для указания FQDN кажется правильным решением, однако я уже сделал это, посмотрите запись localhost.my.domain.org. Я не стал добавлять имя моего хоста (coral) в /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 это осознал.

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

Я решаю это так; предположим, ваше имя хоста covfefe. Сначала выполните эту команду:

sudo hostname covfefe

Затем отредактируйте /etc/hostname и измените значение в нем:

sudo nano /etc/hostname

Наконец, проверьте ваше имя хоста с помощью sysctl следующим образом:

sysctl kernel.hostname

И если значение не covfefe, измените его на covfefe следующим образом:

sudo sysctl kernel.hostname=covfefe

Чтобы установить доменное имя в Debian, вы можете отредактировать /etc/hostname.
Для хоста hulefu в домене somewhere.co.uk просто установите /etc/hostname как hulefu.somewhere.co.uk. Это должно работать и для большинства других дистрибутивов Linux.

Теперь hostname -d должен дать somewhere.co.uk в качестве ответа.

Похожий вопрос был задан на сервере Serverfault.

Обновление:
Вы можете вместо этого добавить доменный псевдоним в /etc/hosts. Следуя предыдущему примеру, это будет первой строкой в /etc/hosts: 127.0.0.1 localhost localhost.somewhere.co.uk

На мой взгляд, прямое изменение параметров ядра должно быть последним средством.

.

Ответ или решение

Вопрос о смене доменного имени в операционной системе Debian Linux может представлять собой задачу, требующую понимания ряда команд и файлов конфигурации, таких как /etc/hostname, /etc/hosts и /etc/resolv.conf. Ниже мы рассмотрим несколько ключевых аспектов этого процесса.

Теория (Theory)

Доменное имя в контексте Linux-систем определяется как часть Fully Qualified Domain Name (FQDN), который состоит из имени хоста и домена. Например, в FQDN coral.my.domain.org, coral является именем хоста, а my.domain.org — доменным именем.

Основные команды для управления именем хоста и доменным именем в Linux:

  • hostname: устанавливает или выводит имя хоста.
  • domainname: выводит доменное имя системы.
  • dnsdomainname: выводит DNS-доменное имя.
  • sysctl kernel.hostname: управляет параметрами ядра, включая имя хоста.

Пример (Example)

Для изменения доменного имени в Debian необходимо последовательно изменить его так, чтобы система начала его корректно распознавать и использовать. Рассмотрим шаги, которые необходимо предпринять.

Шаг 1: Изменение файла /etc/hostname

Для изменения имени хоста и доменного имени объедините их в один FQDN:

sudo nano /etc/hostname

Замените текущее содержимое на новое, например:

coral.my.domain.org

Шаг 2: Изменение файла /etc/hosts

Этот файл связывает FQDN с IP-адресами. Убедитесь, что запись содержит как localhost, так и ваш FQDN:

127.0.0.1       localhost
192.168.2.102   coral.my.domain.org coral

В этом контексте важно указать корректный IP-адрес, к которому относится ваш сервер.

Шаг 3: Редактирование /etc/resolv.conf

Это обеспечит правильную работу DNS при навигации и разрешении доменов в системе.

domain my.domain.org
search my.domain.org
nameserver 192.168.2.102

Здесь nameserver указывает на ваш DNS-сервер, который должен обрабатывать запросы.

Шаг 4: Проверка и установка через команды

Убедитесь, что новая конфигурация была успешно принята путем выполнения следующих команд:

hostname -f
hostname -d
dnsdomainname
sysctl kernel.hostname

Если они не возвращают ожидаемые значения, выполните:

sudo sysctl kernel.hostname=coral.my.domain.org

или используйте:

sudo hostname coral.my.domain.org

Применение (Application)

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

В завершение, как только все изменения будут внесены, перезагрузите систему, чтобы убедиться в их применении:

sudo reboot

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

Таким образом, изменения доменного имени в Debian Linux могут показаться сложными, однако последовательный подход и внимательное отношение к деталям гарантируют успешную настройку системы.

Оцените материал
Добавить комментарий

Капча загружается...