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

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

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

Время чтения: 10 мин Управление сервером
hostnamednsfqdnhostnamectlresolv.confptr-записьlinux
Автор
REXE Teknoloji Network & Security Team
Редактор
REXE Teknoloji Technical Editorial
Первая публикация
Последнее обновление

Настройка 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-записи.

Часто задаваемые вопросы

Почему после изменения hostname всё ещё отображается старое имя?

Текущий сеанс терминала мог кэшировать старое имя хоста. Примените изменение, выполнив 'exec bash' или открыв новый терминал. Для некоторых приложений может потребоваться перезагрузка сервера.

В чём разница между FQDN и коротким именем хоста?

Короткое имя хоста — это только имя машины (например, server01). FQDN объединяет имя машины и доменное имя (например, server01.rexe.tr). Почтовые серверы, SSL-сертификаты и некоторые приложения требуют FQDN.

Как настроить PTR-запись?

PTR-записи устанавливаются хостинг-провайдером, которому принадлежит ваш IP-адрес. Вы можете управлять PTR-записью сервера через панель клиента REXE. Проверьте текущую PTR-запись командой 'dig -x ВАШ_IP_АДРЕС'.

/etc/resolv.conf сбрасывается при каждой перезагрузке. Как сделать настройки постоянными?

На современных системах /etc/resolv.conf управляется systemd-resolved или NetworkManager. Для постоянных настроек DNS отредактируйте /etc/systemd/resolved.conf и выполните 'systemctl restart systemd-resolved'.

В чём разница между dig и nslookup?

dig более современный и предоставляет подробный вывод; предпочтителен для использования в скриптах. nslookup старше, но имеет более простой интерфейс. Оба инструмента могут диагностировать проблемы DNS, но dig предлагает более мощные параметры.

Связанные статьи

Сетевой трафикВходящий GbpsИсходящий Gbps