Перейти к основному содержимому
Вернуться в категорию

Настройка hostname и DNS сервера: пошаговое руководство

Установка hostname с hostnamectl, настройка /etc/hosts и /etc/resolv.conf, настройка FQDN, важность PTR-записи и тестирование с dig/nslookup.

Время чтения: 10 мин Управление сервером
hostnamednsfqdnhostnamectlresolv.confptr-записьlinux

Содержание

Настройка hostname и DNS сервера: пошаговое руководство

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

Что такое hostname?

Имя хоста — это имя, идентифицирующее ваш сервер в сети. Существует два типа:

  • Короткое имя хоста: только имя машины (например, webserver01)
  • FQDN (Fully Qualified Domain Name): полное доменное имя (например, webserver01.rexe.tr)

FQDN объединяет имя хоста с доменным именем и однозначно идентифицирует ваш сервер в интернете.

Всегда используйте FQDN на производственных серверах. Это критически важно для почтовых серверов, SSL-сертификатов и управления журналами.

Просмотр текущего hostname

hljs bash
# Короткое имя хоста
hostname

# FQDN
hostname -f

# Вся информация об имени хоста
hostnamectl

Установка hostname с помощью hostnamectl

hostnamectl — современный инструмент управления именем хоста на системах с systemd.

hljs bash
# Установить имя хоста
sudo hostnamectl set-hostname webserver01

# Установить имя хоста с FQDN
sudo hostnamectl set-hostname webserver01.rexe.tr

# Проверить изменение
hostnamectl

# Применить изменение, открыв новую оболочку
exec bash

Типы имён хостов

hljs bash
# Статическое имя хоста (постоянное, записывается в /etc/hostname)
sudo hostnamectl set-hostname webserver01 --static

# Временное имя хоста (сбрасывается при перезагрузке)
sudo hostnamectl set-hostname webserver01 --transient

# Красивое имя хоста (для отображения)
sudo hostnamectl set-hostname "Web Server 01" --pretty

Файл /etc/hostname

Имя хоста постоянно хранится в /etc/hostname:

hljs bash
# Просмотр файла
cat /etc/hostname

# Ручное редактирование
sudo nano /etc/hostname
webserver01

Записывайте в /etc/hostname только короткое имя хоста, не FQDN. Конфигурация FQDN выполняется в /etc/hosts.

Настройка /etc/hosts

Файл /etc/hosts — локальная таблица разрешения имён, проверяемая перед DNS-запросами.

hljs bash
# Просмотр файла
cat /etc/hosts

# Редактирование
sudo nano /etc/hosts

Правильная конфигурация /etc/hosts

127.0.0.1       localhost
127.0.1.1       webserver01.rexe.tr webserver01

# Реальный IP-адрес сервера
203.0.113.100   webserver01.rexe.tr webserver01

# IPv6
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

Строка 127.0.1.1 используется для FQDN на системах Ubuntu/Debian. На системах CentOS/RHEL используйте реальный IP-адрес.

Сценарии использования /etc/hosts

hljs bash
# Локальная среда разработки
192.168.1.10    db.local database
192.168.1.20    cache.local redis

# Блокировка определённого домена
0.0.0.0         ads.example.com

# Псевдоним для быстрого доступа
10.0.0.5        prod-db production-database

Конфигурация DNS в /etc/resolv.conf

/etc/resolv.conf определяет DNS-серверы системы.

hljs bash
# Просмотр текущей конфигурации DNS
cat /etc/resolv.conf

Пример resolv.conf

# DNS-серверы
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 1.1.1.1

# Домен поиска (для коротких имён)
search rexe.tr

# Домен
domain rexe.tr

# Максимальное количество попыток DNS
options attempts:3
# Тайм-аут DNS (секунды)
options timeout:2

Управление DNS с помощью systemd-resolved

На Ubuntu 18.04+ и современных системах Debian DNS управляется systemd-resolved:

hljs bash
# Просмотр статуса DNS
resolvectl status

# Запрос DNS для конкретного домена
resolvectl query rexe.tr

# Очистка кэша DNS
resolvectl flush-caches
hljs bash
# Постоянная настройка DNS с systemd-resolved
sudo nano /etc/systemd/resolved.conf
hljs ini
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1
Domains=rexe.tr
DNSSEC=no
DNSOverTLS=no
hljs bash
# Перезапустить службу
sudo systemctl restart systemd-resolved

Настройка FQDN

Выполните следующие шаги для правильной настройки FQDN:

hljs bash
# 1. Установить имя хоста
sudo hostnamectl set-hostname webserver01

# 2. Отредактировать /etc/hosts
sudo nano /etc/hosts
127.0.0.1       localhost
127.0.1.1       webserver01.rexe.tr webserver01
203.0.113.100   webserver01.rexe.tr webserver01
hljs bash
# 3. Проверить FQDN
hostname -f
# Вывод: webserver01.rexe.tr

# 4. Проверить короткое имя хоста
hostname -s
# Вывод: webserver01

# 5. Проверить IP-адрес
hostname -I

Важность PTR-записи (обратный DNS)

PTR-запись — это запись обратного DNS, которая разрешает IP-адрес в имя хоста.

Почему PTR-записи важны

  • Доставка электронной почты: спам-фильтры отклоняют письма с IP без PTR-записей
  • Безопасность: инструменты сетевой безопасности проверяют PTR-записи
  • Анализ журналов: видеть имена хостов вместо IP упрощает чтение журналов
  • Некоторые службы: FTP, IRC и подобные службы могут требовать PTR-записи

Настройка PTR-записи

PTR-записи устанавливаются провайдером или хостинг-провайдером, которому принадлежит ваш IP-адрес. Вы можете управлять PTR-записью через панель клиента REXE.

hljs bash
# Проверить текущую PTR-запись
dig -x 203.0.113.100

# или
nslookup 203.0.113.100

Тестирование DNS с помощью dig

dig — наиболее мощный инструмент для тестирования DNS-запросов.

hljs bash
# Запрос A-записи
dig rexe.tr A

# Запрос MX-записи
dig rexe.tr MX

# Запрос NS-записи
dig rexe.tr NS

# Использовать конкретный DNS-сервер
dig @8.8.8.8 rexe.tr A

# Краткий вывод
dig +short rexe.tr A

# Запрос обратного DNS
dig -x 203.0.113.100

# Проверить распространение DNS
dig +trace rexe.tr

Тестирование DNS с помощью nslookup

hljs bash
# Базовый запрос
nslookup rexe.tr

# С конкретным DNS-сервером
nslookup rexe.tr 8.8.8.8

# Обратный DNS
nslookup 203.0.113.100

# Интерактивный режим
nslookup
> server 8.8.8.8
> set type=MX
> rexe.tr
> exit

Устранение неполадок

Изменение hostname не применяется

hljs bash
# Запустить новую оболочку
exec bash

# или перезагрузить систему
sudo reboot

# Проверить /etc/hostname
cat /etc/hostname

DNS-разрешение не работает

hljs bash
# Проверить DNS-подключение
dig @8.8.8.8 google.com

# Проверить resolv.conf
cat /etc/resolv.conf

# Проверить статус systemd-resolved
systemctl status systemd-resolved

# Проверить nsswitch.conf
cat /etc/nsswitch.conf | grep hosts

При проблемах с DNS сначала проверьте /etc/hosts, затем /etc/resolv.conf. Строка hosts в nsswitch.conf определяет порядок разрешения.

Заключение

Правильная настройка имени хоста и DNS — один из краеугольных камней управления сервером. Правильная настройка FQDN на серверах REXE критически важна для доставки электронной почты, SSL-сертификатов и конфигурации приложений. Вы можете использовать панель клиента REXE, чтобы убедиться в правильной настройке PTR-записи.