EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Как правильно настроить имя хоста сервера и FQDN

Уровень: Начальный
Примерное время: ≈ 15 минут
Цель: Настроить постоянное имя хоста сервера и задать Fully Qualified Domain Name (FQDN) для корректной идентификации системы и локального DNS-резолвинга.

Введение

Hostname – это метка, назначенная устройству в сети, а Fully Qualified Domain Name (FQDN) включает и hostname, и домен, к которому он относится (например, web-server-01.example.com). Правильная настройка критична для сервисов вроде почтовых серверов (Postfix, Exim), внутренней сетевой координации и идентификации серверов в приглашении терминала в большом парке.

В этом руководстве вы зададите постоянный hostname с помощью инструментов systemd и настроите локальное переопределение FQDN.

Насчёт типов FQDN:

  • Public FQDN: задаётся через публичный DNS (например, Cloudflare, Route53). Так мир находит ваш сервер.
  • Local FQDN: то, как сервер идентифицирует себя и резолвит собственное имя внутри. В идеале они должны совпадать, но именно локальная конфигурация обеспечивает стабильность системы.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Операционная система: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12 или RHEL/CentOS/AlmaLinux 8/9.
  • Доступ: пользователь с правами sudo.
  • Необходимые знания: базовое использование терминала Linux и текстовых редакторов (например, nano или vim).

Шаг 1: Проверьте текущую конфигурацию

Сначала проверьте, каким именем сейчас считает себя ваш сервер.

Выполните команду статуса:

hostnamectl status

Ожидаемый вывод (или похожий):

Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: abc123def456 Boot ID: 123abc456def Virtualization: kvm Operating System: Ubuntu 24.04 LTS Kernel: Linux 6.8.0-31-generic Architecture: x86-64

Далее проверьте, корректно ли резолвится FQDN:

hostname -f

Если система возвращает пустую строку, ровно localhost или ошибку о невозможности резолвинга хоста, ваш FQDN настроен неправильно.

Шаг 2: Установите новый hostname

Используйте утилиту hostnamectl, чтобы безопасно и постоянно установить статический hostname. Избегайте ручного редактирования /etc/hostname, так как hostnamectl управляет им корректно для вашей системы.

Выполните команду ниже, заменив <YOUR_HOSTNAME> на желаемое короткое имя (например, web-01):

sudo hostnamectl set-hostname <YOUR_HOSTNAME>

Info

Хотя Linux технически допускает точки в hostname, рекомендуется использовать только строчные буквы, цифры и дефисы. Точки в коротком hostname (например, web.01) могут вызвать путаницу с FQDN, поэтому их обычно избегают.

Команда применяет изменения сразу. Вы можете заметить, что текущее приглашение терминала (обычно user@old-hostname:~$) не изменилось мгновенно. Выйдите и войдите снова или откройте новую сессию bash, набрав bash, чтобы увидеть обновлённое имя.

Шаг 3: Обновите /etc/hosts для резолвинга FQDN

Локальный FQDN системы определяется порядком поиска резолвера, заданным в /etc/nsswitch.conf (обычно строка hosts: files dns). Это означает, что система проверяет /etc/hosts до обращения к внешнему DNS.

Самый безопасный шаблон для production (особенно на Debian/Ubuntu) – привязать FQDN к loopback-адресу 127.0.1.1. Это гарантирует резолвинг имени даже при недоступной сети или изменении публичного IP.

Откройте файл hosts:

sudo nano /etc/hosts

Вы увидите существующее содержимое, похожее на это:

127.0.0.1 localhost 127.0.1.1 old-hostname

Не удаляйте строку 127.0.0.1 localhost. Вместо этого обновите строку 127.0.1.1 (или добавьте её), указав сначала FQDN, а затем короткий hostname.

Обновите файл по следующему шаблону:

127.0.0.1 localhost 127.0.1.1 <YOUR_FQDN> <YOUR_HOSTNAME>

Пример: если ваш FQDN – web-01.example.com, а hostname – web-01:

127.0.0.1 localhost 127.0.1.1 web-01.example.com web-01

Warning

Избегайте использования публичных IP-адресов в /etc/hosts, если это не требуется специально. Если IP-адрес изменится (что часто бывает в облачных средах), а вы забудете обновить этот файл, резолвинг имени перестанет работать.

Сохраните и закройте файл (в nano нажмите Ctrl+O, Enter, затем Ctrl+X).

Шаг 4: Проверьте изменения

Теперь убедитесь, что система корректно регистрирует FQDN.

Проверьте активный FQDN:

hostname -f

Ожидаемый вывод:

web-01.example.com

Проверьте активный короткий hostname:

hostname -s

Ожидаемый вывод:

web-01

Наконец, пропингуйте FQDN, чтобы убедиться, что он успешно резолвится обратно в IP-адрес, указанный в hosts-файле:

ping -c 3 <YOUR_FQDN>

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

Шаг 5: Примечание о cloud-init для настройки Hostname на VPS

При настройке Hostname на VPS в AWS EC2, Google Cloud Compute Engine или DigitalOcean важно учитывать работу cloud-init. Этот механизм повторно применяет часть системной конфигурации при загрузке и нередко перезаписывает изменения Hostname после перезапуска, поэтому даже корректная конфигурация Hostname в Linux и заданный Domain Name могут выглядеть как несохранённые.

Если hostname откатывается именно после перезагрузки, настройте cloud-init так, чтобы он сохранял hostname.

Откройте конфигурацию cloud-init:

sudo nano /etc/cloud/cloud.cfg

Найдите параметр preserve_hostname: false и измените его на true:

preserve_hostname: true

Если строки нет, добавьте её в конец конфигурационного файла. Сохраните и закройте.

Если Hostname не сохраняется после перезагрузки, сначала проверьте вывод hostnamectl status и убедитесь, что статическое имя задано правильно, а затем проверьте, не возвращает ли cloud-init прежнее значение. Если hostname -f не показывает ожидаемый FQDN, проверьте запись 127.0.1.1 в /etc/hosts и убедитесь, что после FQDN указан короткий Hostname. Если приложения и дальше сообщают старое имя, сопоставьте Domain Name сервера, порядок резолвинга в /etc/nsswitch.conf и метаданные облачного провайдера.

Откат (Rollback)

Если вы ошиблись в настройках и нужно вернуть сервер к состоянию по умолчанию:

Сбросьте короткий hostname:

sudo hostnamectl set-hostname localhost

Восстановите файл /etc/hosts, удалив вашу строку с кастомным IP. Убедитесь, что loopback выглядит так:

sudo nano /etc/hosts

127.0.0.1 localhost 127.0.1.1 localhost

Заключение

Вы успешно задали постоянный hostname и настроили локальное сопоставление, чтобы получить корректный FQDN. Правильная конфигурация создаёт базовый уровень «идентичности» для веб-сервисов, почтовых конфигураций и инструментов удалённой оркестрации.

Версия документа: 1.0
Последнее обновление: Апрель 2026
Ответственный: Команда технической документации

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA