could not resolve host перевод

Некоторые пользователи сталкиваются с ошибкой «sudo unable to resolve host». Обычно, эта ошибка появляется после смены имени компьютера. Это простая проблема, которую можно быстро решить.

В этой статье мы рассмотрим, почему возникает эта ошибка, что она означает, а также как её решить на примере Ubuntu.

Что значит sudo unable to resolve host

Сообщение «unable to resolve host имя_хоста» означает, что утилита не может определить IP-адрес хоста «имя_хоста«. Казалось бы, sudo — это локальная команда для повышения привилегий в системе, и ей незачем определять IP хостов. Но это не совсем так: sudo может использоваться и удалёнными пользователями, например, подключёнными по SSH, а в самом конфигурационном файле /etc/sudoers уровни доступа различных пользователей настраиваются такой строчкой:

пользователь хост = ( другой_пользователь : группа ) команды

Подробнее про строку настройки читайте в статье настройка sudo в linux. А сейчас нам интересно, что для каждого запроса утилите нужно определить, какой хост используется на данном компьютере.

Если кратко, то основная идея разработчиков состоит в том, что один универсальный файл /etc/sudoers будет использоваться на множестве компьютеров и на каждом из них нужно определить, какие правила предназначены для него. Таким образом, переменная host в sudoers влияет только на локальные правила.

А теперь вернёмся к нашей ошибке. Как я уже сказал, она означает, что утилита не может определить IP-адрес «имени хоста». Для домена сайта это означало бы, что такой записи нет в DNS. Но поскольку это имя нашего локального компьютера, то вполне естественно, что его нет в глобальной сети.

Как исправить ошибку

1. Решение проблемы в /etc/hosts

Чтобы исправить ошибку, мы можем добавить такую DNS-запись локально в файл /etc/hosts. Поскольку sudo у вас не работает, а этот файл можно редактировать только от суперпользователя, то эта простая задача становится сложнее. Сначала смотрим наше текущее имя хоста:

Дальше, если у вас установлен пароль root, вы можете авторизоваться от его имени с помощью su:

А затем добавить такую строчку в /etc/hosts:

Слова «имя_хоста» надо заменить на то имя хоста, которое вы получили с помощью команды hostname. После этого надо перезапустить компьютер или просто перезапустить сеть:

sudo systemctl restart networking

Ещё желательно убедиться, что в системной службе разрешения доменных имён включено использование файла /hosts. Откройте /etc/nsswitch.conf и найдите в строке hosts слово «files». Оно должно быть на первом месте. Если нет, перенесите его на первое место.

Если же у вас пароль для root не установлен, вам нужно загрузиться с LiveCD, примонтировать корневую файловую систему в /mnt/ и исправлять ошибку уже там.

2. Решение с помощью systemd

Есть ещё один путь. В попытках воспроизвести эту проблему в своей Ubuntu 18.04 я обнаружил, что разрешением доменных имён для локальных приложений занимается служба systemd-resolved. Если она запущена, то даже если в файле /etc/hosts нет имени вашего компьютера, всё будет работать. Поэтому, если вы случайно отключили эту службу, верните её на место и всё заработает:

sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved

Выводы

В этой статье мы разобрали, как справиться с ошибкой «sudo cannot to resolve host». Как видите, всё достаточно логично и просто. Если у вас остались вопросы, спрашивайте в комментариях!

Главное меню » Операционная система Linux » Исправление ошибки sudo: unable to resolve host

Мы забыли дать ему разумное имя, поэтому через несколько дней мне пришлось изменить имя хоста и дать ему лучшее имя. Теперь он называется test-server, потому что для этого он и используется.

Мы создали пользователя sudo, потому что мы не рекомендуем все время быть пользователем root, особенно когда работаете со своей системой.

Когда мы начали использовать команды с sudo, то увидели странную ошибку в выводе команд:

Команда без проблем запускалась с sudo, но это сообщение об ошибке все равно отображалось.

Исправление sudo: unable to resolve host

Основная причина ошибки была связана с изменением имени хоста. Позвольте нам показать вам, как исправить эту проблему, чтобы устранить ошибку имени хоста.

Сначала проверьте имя хоста вашей системы с помощью команды hostname. В нашем случае имя хоста – тест-сервер.

Имя хоста берется из файла /etc/hostname.

То же имя хоста должно быть указано в файле /etc/hosts. Но в нашем случае (и мы думаем, что и в вашем случае) это имя хоста отсутствовало в файле /etc/hosts, как вы можете видеть в выходных данных ниже:

127.0.0.1 localhost
The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Поскольку он здесь отсутствует, система не может определить имя хоста и, таким образом, выдает ошибку ‘sudo: unable to resolve host’.

Чтобы исправить это, отредактируйте этот файл и добавьте новую строку и установите адрес обратной связи с именем хоста. Вы можете использовать редактор Vim для редактирования файлов в командной строке.

Итак, теперь наш файл /etc/hosts выглядит так:

127.0.0.1 localhost
127.0.0.1 test-server
The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Сразу после добавления вышеупомянутой строки ошибка ‘sudo: unable to resolve host’ исчезла.

Мы надеемся, что этот быстрый маленький совет помог вам исправить эту раздражающую ошибку. Дайте нам знать, работает это у вас или нет в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Name server — In computing, a name server (also spelled nameserver) is a program or computer server that implements a name service protocol. It maps a human recognizable >Wikipedia

Domain Name System — The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the… … Wikipedia

Domain name — A domain name is an >Wikipedia

Peer Name Resolution Protocol — This article needs more context around or a better explanation of technical details to to general readers and technical readers outs >Wikipedia

Windows Internet Name Service — (WINS) is Microsoft s implementation of NetBIOS Name Service (NBNS), a name server and service for NetBIOS computer names. Effectively WINS is to NetBIOS names, what DNS is to domain names a central mapping of host names to network addresses.… … Wikipedia

Root name server — A Cisco 7301 router, part of the AMS IX mirror of the K root server. A root name server is a name server for the Domain Name System s root zone. It directly answers requests for records in the root zone and answers other requests returning a list … Wikipedia

Ganglia — Страница статистики серверов … Википедия

MX record — A mail exchanger record (MX record) is a type of resource record in the Domain Name System that specifies a mail server responsible for accepting email messages on behalf of a recipient s domain and a preference value used to prioritize mail… … Wikipedia

Windows Vista networking technologies — This article is part of a series on Windows Vista New features Overview Technical and core system Security and safety Networking technologies I/O technologies Management and administration Removed features … Wikipedia

Dynamic DNS — is a method/protocol/network service that prov >Wikipedia

No-IP — by Vitalwerks Internet Solutions, LLC. Logo Type LLC. Industry DNS and Hosting Founded 1999 Vitalwerks LLC Headquarters Reno, Nevada … Wikipedia

Оцените статью