Предупреждение «sudo: unable to resolve host»: имени сервера нет в /etc/hosts
Это предупреждение: команда после него выполняется. sudo не нашёл адрес для имени сервера — добавьте имя в файл /etc/hosts.
Содержание 9
Что сделать прямо сейчас
- Узнайте имя сервера — шаг 1.
- Добавьте строку с этим именем в /etc/hosts — шаг 2.
- Если после перезагрузки строка пропала — шаг 3.
Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
Что значит это сообщение
sudo: unable to resolve host myserver: Name or service not knownВместо myserver будет имя вашего сервера. Это предупреждение, а не ошибка: в Ubuntu команда после него выполняется.
При запуске sudo узнаёт полное имя сервера и ищет для него адрес среди известных системе — в файле /etc/hosts и через DNS. Не нашёл — пишет предупреждение. Так бывает после смены имени сервера, если /etc/hosts не поправили.
Шаг 1. Узнайте имя сервера
hostnameКоманда выведет имя, например myserver. Посмотрите, есть ли оно в /etc/hosts:
grep myserver /etc/hostsЕсли команда ничего не вывела — имени в файле нет.
Шаг 2. Добавьте имя в /etc/hosts
Откройте файл в редакторе (как работать с редактором — в разделе про nano):
sudo nano /etc/hostssudo ещё раз покажет предупреждение — это нормально, редактор откроется. В начале файла есть строка 127.0.0.1 localhost. Добавьте под ней строку со своим именем:
127.0.1.1 myserverЕсли в файле уже есть строка, начинающаяся с 127.0.1.1, со старым именем — замените в ней старое имя на новое. Сохраните файл и выйдите.
Шаг 3. Если строка пропала после перезагрузки
Файл /etc/hosts может пересобирать cloud-init — программа первоначальной настройки, которую ставят провайдеры. Проверьте, включено ли это:
grep -r manage_etc_hosts /etc/cloud/- Ничего не выведено или стоит
false— cloud-init файл не трогает, ваша правка останется. true— cloud-init собирает /etc/hosts из шаблона в папке /etc/cloud/templates/ при каждой загрузке. Постоянные правки вносите в шаблон: посмотритеls /etc/cloud/templates/и откройте файл, имя которого начинается с hosts.localhost— cloud-init сам добавляет строку 127.0.1.1 с именем сервера при загрузке.
Как проверить
sudo whoamiКоманда ответит root без строки unable to resolve host.
Похожие ошибки
| Сообщение | Чем отличается |
|---|---|
| Temporary failure resolving '…' | apt не может найти адрес репозитория: проблема с DNS |
| sudo: … command not found | sudo не нашёл программу |
Тексты сообщений на этой странице сверены с исходным кодом sudo 1.9.15p5 — эта версия стоит в Ubuntu 24.04. В других версиях слова могут немного отличаться.
Источники
- Исходный код sudo 1.9.15p5: sudoers_cb.c — текст unable to resolve host.
- Как sudo собран в Ubuntu 24.04: файл debian/rules — в Ubuntu sudo собран с параметром --with-fqdn.
- man hostname.
- man hostnamectl — как сменить имя сервера.
- cloud-init: модуль update_etc_hosts — параметр manage_etc_hosts.
Сверено 9 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 09.10.2026