К основному содержимому

Как изменить hostname на Linux: Ubuntu, Debian, CentOS

VDS / VPS · 19.04.2026 · 5 мин чтения
Иллюстрация к статье «Как изменить hostname на Linux: Ubuntu, Debian, CentOS»

Hostname — имя сервера в сети. Он используется в приглашении командной строки, логах, почтовых заголовках и PTR-записях. Правильный hostname — это FQDN вида server.example.com.

Типы hostname в Linux

ТипПримерОписание
staticserver.example.comОсновной, хранится в /etc/hostname
transientserverВременный, устанавливается ядром
prettyMy ServerДля UI (может содержать пробелы)

Изменение hostname — современный способ (systemd)

# Посмотреть текущий hostname
hostnamectl status

# Изменить hostname
sudo hostnamectl set-hostname server.example.com

# Проверить
hostname
hostname --fqdn

Обновление /etc/hosts

После смены hostname обязательно обновите /etc/hosts:

sudo nano /etc/hosts

# Добавьте или измените строку:
127.0.1.1    server.example.com    server

# Также убедитесь, что публичный IP тоже указан:
YOUR.PUBLIC.IP    server.example.com    server

Изменение на старых системах (без systemd)

# CentOS 6 / Debian 7 и старше
sudo nano /etc/hostname
# Впишите: server.example.com

# Применить без перезагрузки
sudo hostname server.example.com

Проверка после изменения

# Текущий hostname
hostname

# FQDN
hostname --fqdn

# Полный статус
hostnamectl status

# Новое приглашение появится после:
exec bash   # или открыть новую SSH-сессию
💡 Почтовый сервер: Hostname VPS должен совпадать с PTR-записью (rDNS) и HELO-именем Postfix. Иначе письма будут отклоняться. Формат: mail.yourdomain.com.

Hostname и SSL-сертификаты

Let's Encrypt при выдаче сертификата проверяет, что домен указывает на ваш IP. Если hostname сервера — server.example.com, домен server.example.com должен иметь A-запись на IP этого сервера.

⚠️ Не используйте localhost: Hostname localhost или server без домена вызовет проблемы с Postfix, SSL-генерацией и некоторыми панелями управления. Всегда указывайте FQDN.

Разбор типичных ошибок

После смены hostname команда "sudo" начинает жаловаться "unable to resolve host" — sudo при запуске пытается разрешить текущий hostname через DNS или /etc/hosts, и если новое имя там не прописано, получает ошибку.

sudo: unable to resolve host server.example.com: Name or service not known

Команда всё равно выполняется, но с задержкой и предупреждением при каждом запуске. Исправляется добавлением строки в /etc/hosts с новым hostname, как описано выше — эта ошибка почти всегда означает, что шаг с /etc/hosts пропущен.

Postfix перестаёт принимать почту с ошибкой "mail for example.com loops back to myself" — возникает, если myhostname в конфигурации Postfix совпадает с доменом, для которого сервер принимает почту, но не с MX-записью.

postfix/smtpd[1234]: warning: mail for example.com loops back to myself

Hostname почтового сервера должен быть поддоменом, а не голым доменом: mail.example.com, а не example.com. После смены hostname обязательно проверьте postconf myhostname и перезапустите Postfix.

Способы задать hostname: сравнение

СпособПостоянствоСистемыТребует перезагрузки
hostnamectl set-hostnameПостоянно, до следующей сменыsystemd (Ubuntu, Debian, CentOS 7+)Нет
Правка /etc/hostname вручнуюПостоянноЛюбой Linux, включая без systemdДа, либо hostname команда
hostname (без sudo hostnamectl)Временно, до перезагрузкиЛюбой LinuxНет, но сбрасывается
DHCP-опция hostnameЗависит от DHCP-сервераVPS с автонастройкой сетиМожет быть перезаписано

Когда смену hostname лучше не делать вручную

  • Сервер уже настроен для приёма почты, и старый hostname прописан в PTR-записи провайдера — сначала измените PTR на новое имя, иначе почта начнёт отклоняться сразу после смены.
  • На сервере выпущены SSL-сертификаты Let's Encrypt на старое имя — после смены hostname сертификаты не перевыпустятся автоматически, нужно запускать certbot заново на новый домен.
  • Используются кластерные конфигурации (Galera, Keepalived) — там hostname часто завязан на конфигурацию кластера, и произвольная смена может нарушить связь между узлами.

Проверка результата

  1. Убедитесь, что новое имя применилось: hostnamectl status должен показывать нужный Static hostname без ошибок.
  2. Проверьте согласованность с /etc/hosts: getent hosts $(hostname) должен вернуть корректный IP, а не ошибку.
  3. Проверьте PTR-запись, если сервер используется для почты: dig -x ВАШ_IP +short должен вернуть новый hostname.
  4. Перезапустите зависимые сервисы (Postfix, панели управления) и проверьте логи на ошибки, связанные со старым именем: journalctl -u postfix --since "5 min ago".

Для настройки самого почтового сервера после смены hostname см. статью про Postfix, а для выпуска сертификата на новый домен — руководство по SSL с Certbot.

Частые вопросы

Обязательно ли перезагружать сервер после смены hostname?

Перезагрузка не нужна — команда hostnamectl set-hostname применяет изменение сразу, без необходимости рестарта системы. Открытые терминальные сессии и уже запущенные сервисы могут продолжать использовать старое имя, пока их не перезапустят, поэтому после смены стоит перезапустить зависящие от hostname службы вроде Postfix и открыть новую SSH-сессию для проверки.

Hostname — это то же самое, что доменное имя сайта?

Hostname и доменное имя сайта — разные вещи, хотя часто совпадают по формату. Hostname идентифицирует именно сервер в сети и используется системными службами, а домен сайта указывает на IP через DNS и может принадлежать совсем другому серверу или меняться независимо от hostname. Смена одного не переименовывает автоматически другое.

Почему в терминале не сразу видно новое имя в приглашении командной строки?

Приглашение командной строки читает hostname один раз при запуске оболочки, поэтому уже открытая сессия не обновится сама после команды hostnamectl. Новое имя появится только в новой сессии или после команды exec bash, которая перезапускает текущий shell с уже изменёнными переменными окружения без повторного логина по SSH.

Можно ли использовать в hostname заглавные буквы, подчёркивания и цифру в начале?

Заглавные буквы и цифры в hostname допустимы, а вот символ подчёркивания и начало имени с цифры способны вызывать проблемы у части почтовых серверов и старых DNS-резолверов, хотя формально RFC это не всегда прямо запрещает. Безопаснее использовать строчные латинские буквы, цифры и дефис, не ставя дефис или цифру первым символом.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке