Debian Debian 12Debian 13

Debian Linux: после смены hostname часть служб выдаёт ошибку

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

После hostnamectl set-hostname в Debian новое имя отображается в терминале, но sudo, почтовый сервер, веб-сервис либо локальный клиент продолжают обращаться к старому. Само имя хоста не обновляет записи DNS, сертификаты, конфигурации сервисов и /etc/hosts.

В этой статье
  1. Когда возникает ошибка в Debian и какие условия важны
  2. Причины и как отличить их друг от друга
  3. Пошаговая диагностика и устранение
  4. Проверка результата и действия при неуспехе

#Когда возникает ошибка в Debian и какие условия важны

После hostnamectl set-hostname в Debian новое имя отображается в терминале, но sudo, почтовый сервер, веб-сервис либо локальный клиент продолжают обращаться к старому. Само имя хоста не обновляет записи DNS, сертификаты, конфигурации сервисов и /etc/hosts.

#Причины и как отличить их друг от друга

Возможная причинаКак узнатьЧто делать
В /etc/hosts осталось прежнее имяsudo пишет unable to resolve host или getent не находит локальное имя.Сверить статическое имя и строку локального разрешения.
Имя жёстко записано в приложенииВ журнале службы или её конфигурации указан прежний hostname.Уточнить конкретный параметр и обновить только его.
Внешняя DNS-запись ещё не измененаС других машин возвращается прежний адрес или имя.Исправлять запись у администратора DNS, а не локально.

#Пошаговая диагностика и устранение

  1. 1. Узнайте фактическое имя и выпуск системыОткройте терминал Debian и запишите Static hostname из hostnamectl. Команда hostname -f может вернуть ошибку, если полное имя не настроено; это не свидетельствует о поломке всей системы. Сравните вывод hostname с тем именем, которое ожидают службы.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    hostnamectl
    hostname
    hostname -f
  1. 2. Проверьте локальное разрешение имениПосмотрите /etc/hosts и /etc/hostname, затем запросите имя через getent, который использует системные правила NSS. Наличие записи 127.0.1.1 с локальным именем типично для ряда установок Debian, но не обязательно на сервере с полноценной DNS-зоной.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    cat /etc/hostname
    cat /etc/hosts
    getent hosts "$(hostname)"
  1. 3. Определите конкретный сервис с ошибкойВыведите список упавших systemd-служб и последние сообщения при загрузке. Если в логе указан прежний FQDN, найдите соответствующую собственную настройку сервиса, а не выполняйте массовую замену строк по каталогу /etc. Имя в сертификате TLS и имя почтового сервера обновляются по отдельным правилам.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl --failed --no-pager
    journalctl -b -p err --no-pager -n 80
  1. 4. Исправьте только локальную запись после копииКогда getent не возвращает локальное имя и /etc/hosts явно содержит старое, скопируйте файл с сохранением прав и откройте его через sudoedit. Изменяйте только ту строку, которая относится к вашему устройству; не удаляйте localhost и не переписывайте адреса других машин.
  2. Сохраните исходную копию для точечного отката
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Сохраните исходную копию для точечного отката.
    sudo cp -a /etc/hosts /etc/hosts.backup-whelp
    sudoedit /etc/hosts

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 5. Выясните, не управляет ли именем другая системаДля виртуальных машин, облачного Debian и автоматизированного развёртывания параметры hostname могут задаваться cloud-init, DHCP или внешним шаблоном. Если после перезапуска имя возвращается, проверьте настройки такой системы вместо повторных ручных правок.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl status systemd-hostnamed --no-pager
    ls -l /etc/cloud/cloud.cfg 2>/dev/null
  1. 6. Проверьте DNS с другого компьютера отдельноЕсли новое имя должно открываться по сети, на другом Debian-компьютере запустите getent ahosts для своего полного домена. При старой A/AAAA-записи исправление должно делаться у владельца DNS-зоны. Локальный /etc/hosts на сервере никак не заставляет удалённый клиент обновить DNS.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    getent ahosts ИМЯ.example
  1. 7. Убедитесь, что проблема не вернётсяПосле точечной правки выполните hostnamectl и getent, затем проверьте ту функцию приложения, которая ранее не работала. Перезапуск производственной службы согласовывайте заранее, особенно если у неё есть активные соединения и собственный набор сертификатов.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    hostnamectl
    getent hosts "$(hostname)"
    systemctl --failed --no-pager

#Проверка результата и действия при неуспехе

Успех — Debian и нужные приложения используют новое согласованное имя, запросы с других компьютеров работают там, где это требуется, и корректное имя сохраняется при загрузке.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.