Как изменить hostname в Ubuntu/Debian, Astra Linux и BaseALT (ALT Linux)
Как изменить hostname в Ubuntu/Debian‑семействе (включая Astra Linux и BaseALT/ALT Linux): проверка текущего имени, смена через hostnamectl set-hostname, правила выбора hostname, настройка FQDN в /etc/hosts и временная смена до перезагрузки.
Hostname (имя хоста) — это имя компьютера в сети. В Ubuntu/Debian и производных (включая Astra Linux и BaseALT/ALT Linux) чаще всего используется systemd, поэтому самый удобный и безопасный способ смены hostname — hostnamectl.
Просмотр текущего hostname
Показать текущее имя хоста:
hostname
Посмотреть подробности через systemd:
hostnamectl
hostnamectl различает несколько вариантов имени (pretty/static/transient), но для серверов обычно важен static hostname — он постоянный и переживает перезагрузку.
Как правильно выбрать hostname
Базовые правила (совместимость с DNS/сервисами)
- Используй только латинские буквы
a-z, цифры0-9и дефис-(без пробелов и подчёркиваний_). - Не начинай и не заканчивай метку дефисом
-. - Длина одной DNS-метки (часть между точками) — максимум 63 символа.
- В systemd
hostnamectlприменяется системный лимит длины имени (для static/transient hostname в документации systemd указывается ограничение 64 символа).
Short name или FQDN
- Short hostname:
srv1,db-prod,gitlab— чаще всего достаточно для небольшой сети. - FQDN:
srv1.example.com— удобнее для доменной инфраструктуры и когда важно уникальное имя в разных сетях.
Способ 1 (рекомендуется). hostnamectl (systemd)
Задать новое имя хоста:
sudo hostnamectl set-hostname new-hostname
По умолчанию hostnamectl set-hostname меняет pretty/static/transient, а если указать --static/--transient/--pretty, то меняется только выбранный тип.
Проверка:
hostname
hostnamectl
Примечание для Astra Linux
В сценариях подготовки и ввода Astra Linux в доменную инфраструктуру также используют hostnamectl set-hostname, поэтому этот способ там наиболее ожидаем.
Примечание для BaseALT / ALT Linux
В материалах по доменной инфраструктуре ALT Linux тоже встречается подход с заданием hostname через hostnamectl set-hostname.
Способ 2. Редактируем /etc/hostname и /etc/hosts
Этот вариант полезен, если hostnamectl недоступен (например, система без systemd) или нужно руками проверить конфиги.
1) (Опционально) применить имя в текущей системе
Временно установить hostname можно так:
sudo hostname new-hostname
Обычно это изменение временное (до перезагрузки), а постоянное имя берётся из /etc/hostname или задаётся через hostnamectl.
2) Изменить /etc/hostname
Открой файл:
sudo nano /etc/hostname
Укажи new-hostname одной строкой, сохрани и закрой файл.
3) Изменить /etc/hosts
Hostname часто прописывается также в /etc/hosts, поэтому нужно обновить его и там:
sudo nano /etc/hosts
Практика: если hostname = FQDN (server.manuala.ru)
Если задаёшь hostname как FQDN (например, server.manuala.ru), важно, чтобы система могла быстро резолвить это имя локально, даже когда DNS недоступен или “тормозит”. В Debian-подобных системах для этого часто используют запись с 127.0.1.1.
Вариант A (типичный для Debian/Ubuntu): 127.0.1.1 + FQDN + shortname
Пример строки в /etc/hosts:
127.0.1.1 server.manuala.ru server
Такой формат (IP FQDN shortname) используется, чтобы софт мог быстро сопоставлять short hostname и FQDN с адресом без обращения к внешнему DNS, а при DHCP вместо “фиксированного” адреса часто подставляют 127.0.1.1.
Вариант B (если у сервера есть постоянный IP в сети)
Если у сервера стабильный адрес (например, 192.168.0.10) и ты хочешь, чтобы FQDN указывал именно на него:
192.168.0.10 server.manuala.ru server
Это ближе к реальной сетевой схеме и полезно, когда сервисы должны “видеть себя” по своему настоящему IP.
Проверка результата
Открой новую сессию терминала/SSH и проверь:
hostname
hostnamectl
getent hosts $(hostname)
getent hosts server.manuala.ru
Если getent hosts возвращает ожидаемый IP — связка hostname/FQDN настроена корректно.
Если после перезагрузки имя “откатывается”, проверь, не управляет ли hostname отдельный компонент в образе/облаке (часто встречается на VPS/в cloud-init сценариях).