Гид по технологиям

Как исправить ошибку "unable to resolve host" после смены hostname в Linux

4 min read Linux Обновлено 12 Apr 2026
Исправить unable to resolve host в Linux
Исправить unable to resolve host в Linux

Терминал Linux с командами

Что такое hostname и зачем его менять

Hostname — это текстовая метка, которую система использует, чтобы идентифицировать машину в локальной сети и в интерфейсах командной строки. Простая трактовка: hostname — это читаемое имя компьютера. Оно полезно при администрировании нескольких серверов, чтобы сразу понять, с каким устройством вы работаете.

На Ubuntu и других Debian-подобных дистрибутивах изменить hostname можно через hostnamectl.

Откройте терминал (Ctrl + Alt + T) и выполните:

sudo hostnamectl set-hostname your-new-hostname

Затем выйдите из сессии и зайдите снова — имя в приглашении оболочки обновится.

Почему появляется ошибка “unable to resolve host: Name or service not known”

Когда вы меняете имя хоста, оно обновляется в /etc/hostname, но не всегда автоматически добавляется в /etc/hosts. Многие системные утилиты (включая sudo) пытаются разрешить локальное имя через /etc/hosts. Если соответствующей записи нет, при вызове sudo вы можете увидеть сообщение:

unable to resolve host MUOVPS: Name or service not known

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

Быстрое исправление шаг за шагом

  1. Проверьте текущее имя хоста:
cat /etc/hostname
  1. Просмотрите файл /etc/hosts, чтобы убедиться, что там нет новой записи:
cat /etc/hosts
  1. Отредактируйте /etc/hosts с правами root (здесь показан nano, можно использовать vim или другую утилиту):
sudo nano /etc/hosts
  1. Добавьте на новой строке ваш hostname рядом с локальным адресом. Пример минимальной строки:
127.0.0.1   localhost
127.0.1.1   MUOVPS

или, если хотите явно назначить на конкретный IP:

192.168.1.10    MUOVPS.example.local MUOVPS

Сохраните (Ctrl + O) и выйдите (Ctrl + X).

  1. Проверьте, что сообщение об ошибке исчезло, запустив sudo любую команду, например:
sudo whoami

Если всё настроено верно, предупреждение больше не должно появляться.

Изменённый /etc/hosts в nano с новой записью MUOVPS

Важно: файл /etc/hosts — критический для системы. Ошибка в синтаксисе или дублирование записей может нарушить разрешение имён. Делайте резервную копию перед правками:

sudo cp /etc/hosts /etc/hosts.bak

Альтернативные подходы

  • Вернуть прежний hostname: если вы помните старое имя, поместите его обратно в /etc/hostname и перезайдите в сессию.
  • Использовать systemd-hostnamed API: некоторые инструменты управления конфигурацией (Ansible, cloud-init) умеют синхронизировать /etc/hostname и /etc/hosts автоматически.
  • Для контейнеров: часто имя хоста управляется оркестратором (Docker, Kubernetes), и правку локального /etc/hosts нужно делать через настройки контейнера/пода.

Когда эта правка не поможет (контрпримеры)

  • Если проблема в DNS: ошибка похожа, но связана с удалёнными именами и системными резолверами (например, /etc/resolv.conf или сетевой DNS). В таком случае правка /etc/hosts не решит проблему.
  • Если sudo выдаёт ошибку из‑за повреждённой установки sudo или проблем с NSS (Name Service Switch), потребуется диагностика PAM/NSS.

Мини‑методика диагностики (быстро)

  1. cat /etc/hostname — проверить текущее имя. 2. cat /etc/hosts — проверить наличие записи. 3. ping -c1 — проверить локальное разрешение. 4. tail -n 50 /var/log/auth.log — посмотреть предупреждения sudo. 5. восстановить /etc/hosts из бэкапа при проблемах.

Чеклист для ролей

Администратор:

  • Убедиться, что /etc/hostname и /etc/hosts синхронизированы.
  • Сделать резервную копию /etc/hosts.
  • Проверить логи sudo и системные логи после правки.

Пользователь:

  • Сообщить администратору точное сообщение об ошибке и текущее содержимое /etc/hostname.
  • Приложить вывод команд cat /etc/hosts и uname -n, если это разрешено.

Критерии приёмки

  • При выполнении sudo предупреждение “unable to resolve host” больше не появляется.
  • В /etc/hosts есть запись с новым hostname, соответствующая локальному IP (127.0.1.1 или конкретному адресу).
  • Система корректно отображает новый hostname в приглашении и логах.

Однострочный глоссарий

hostname — читаемое имя компьютера; /etc/hostname — файл с именем хоста; /etc/hosts — локальный маппинг имён в IP.

Частые ошибки и их минимальные mitigations

  • Забыл сделать бэкап /etc/hosts: восстановите из /etc/hosts.bak или перенесите корректную запись с другого идентичного сервера.
  • Неправильный формат строки: используйте табуляцию или пробелы, не добавляйте комментарии в середине строки.

Короткое резюме

Добавление нового hostname в /etc/hosts — простая и безопасная операция, решающая распространённую нефатальную проблему после смены имени хоста. Если ошибка сохраняется, проверьте DNS, PAM/NSS и логи системы.

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

Почему изменение в /etc/hostname не достаточное?

Некоторые службы (включая sudo) обращаются к локальному файлу /etc/hosts для быстрого разрешения имени; /etc/hostname только хранит имя, но не создаёт сопоставление с IP.

Можно ли безопасно удалить старые записи из /etc/hosts?

Да, если вы уверены, что больше не используете старые имена; предпочтительно сначала отключить старые записи и проверить систему, затем удалить.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Восстановление аккаунта Snapchat при забытом пароле
Социальные сети

Восстановление аккаунта Snapchat при забытом пароле

Восстановление и резервное копирование миров Minecraft
Игры

Восстановление и резервное копирование миров Minecraft

Значок #OpenToWork в LinkedIn — включение и отключение
Карьера

Значок #OpenToWork в LinkedIn — включение и отключение

Как выбирать NPU для ноутбука и смартфона
Процессоры

Как выбирать NPU для ноутбука и смартфона

Отключение видео участников в Google Meet
Видеоконференции

Отключение видео участников в Google Meet

Преобразовать текст в речь в Podcastle
Подкасты

Преобразовать текст в речь в Podcastle