Проверьте содержимое /etc/network/interfaces. Хотя я мог ошибаться, мне кажется, что вы управляете своими сетями из графического интерфейса. Ранее у меня были проблемы с конфликтами между файлом /etc/network/interfaces и настройкой GUI Ubuntu.
Если /etc/network/interfaces имеет в нем сети, попробуйте удалить их и использовать только настройку GUI. Если это не работает, и этот файл имеет только следующие строки, попробуйте выполнить следующие шаги.
auto lo
iface lo inet loopback
Если ваш файл /etc/network/interfaces имеет только те строки, моя первая попытка - удалите все в сети Ubuntu GUI и поместите в /etc/network/interfaces:
auto eth0
iface eth0 inet dhcp
Или для настройки статического IP-адреса (для случаев, когда у вас нет маршрутизатора dhcp):
[ f3]И замените eth0 на eth1 или wlan0 и т. д. для вторичного ethernet или беспроводной карты.
Затем запустите sudo /etc/init.d/networking restart, чтобы протестировать его, затем перезагрузитесь, чтобы узнать,
PS: Я не гарантирую эту работу. Трудно сказать из-за ограниченного количества информации, которую вы можете опубликовать там, где проблема. Это просто первое, что я попробую.
Проверяем две вещи (при условии, что ваш компьютер называется my-machine, вы можете изменить это как соответствующее):
Что файл /etc/hostname содержит только имя машины. Это /etc/hosts имеет запись для localhost. Он должен иметь что-то вроде: 127.0.0.1 localhost.localdomain localhost 127.0.1.1 my-machineЕсли какой-либо из этих файлов неверен (поскольку вы не можете использовать sudo), вам может потребоваться перезагрузить компьютер в режим восстановления и внести изменения, затем перезагрузитесь в обычную среду.
Проверяем две вещи (при условии, что ваш компьютер называется my-machine, вы можете изменить это как соответствующее):
Что файл /etc/hostname содержит только имя машины. Это /etc/hosts имеет запись для localhost. Он должен иметь что-то вроде: 127.0.0.1 localhost.localdomain localhost 127.0.1.1 my-machineЕсли какой-либо из этих файлов неверен (поскольку вы не можете использовать sudo), вам может потребоваться перезагрузить компьютер в режим восстановления и внести изменения, затем перезагрузитесь в обычную среду.
Извините, я не могу вам помочь, но, поскольку он говорит «не удается разрешить хост», попробуйте запустить:
hostname
И посмотрите, является ли вывод именем хоста машины. Если нет, проблема в конфигурации хоста, а не в sudo.
У меня была такая же проблема, хотя имя хоста в файле / etc / hostname и / etc / hosts совпало.
Мое имя хоста было «staging_1». Оказывается, у вас не может быть подчеркивания в вашем имени хоста, поэтому я получаю эту ошибку. Изменение подчеркивания на дефис исправило мою проблему.
Добавьте свое имя хоста в /etc/hosts следующим образом:
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts
Обратите внимание, что это ответ на этот вопрос, который был объединен с этим.
Ваше имя хоста (dave00-G31M-ES2L) не представлено в /etc/hosts. Добавьте L в эту строку:
127.0.1.1 dave00-G31M-ES2
Таким образом, это будет:
127.0.1.1 dave00-G31M-ES2L
Чтобы выполнить это, откройте консоль (нажмите Ctrl + Alt + T) и введите:
sudo gedit /etc/hosts
Добавьте письмо L, как указано, сохраните и выйдите.
Некоторые эмуляторы терминала не будут обновлять приглашение с правильным именем хоста, пока вы не закроете и не перезапустите эмулятор (lxterminal, я говорю с вами).
Я потратил 30 минут на борьбу с этой ошибкой после редактирования моего имени хоста и файлов хостов и запуска sudo service hostname restart до тех пор, пока не запустил sudo hostname и не увидел, что имя хоста было новым значением, даже если в подсказке было показано старое значение.
В AWS перейдите на свой vpc и включите «DNS Hostnames».
, если вы не можете sudo вы МОЖЕТ войти в систему с правами root через su. IE: su root (в x-term). затем введите пароль root при появлении запроса, затем вы можете редактировать файлы с помощью nano. Пароль root в «buntu» совпадает с паролем, который вы используете для sudo.
У меня была эта проблема, когда я использовал ubuntu на VPS. Я решил, что он редактирует файл / etc / hosts.
запустите эту команду:
sudo nano /etc/hosts
, а затем добавьте:
127.0.0.1 localhost.localdomain localhost
127.0.1.1 ubuntu
Надеюсь, что это решит ваша проблема:)
PS: Не забудьте перезагрузить компьютер!
вы можете получить сообщение об ошибке, если ваши хосты или файл хоста содержат недопустимые символы. Разрешены только эти символы: a-z, A-Z, 0-9
У меня была та же проблема. Я решил это, отредактировав файлы / etc / hosts и / etc / hostname ... в файле / etc / hosts, просто отредактируйте верхнюю часть, как показано ниже.
#vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 localhost myhostname
#vi /etc/hostname
myhostname
Симптом, данный в вопросе, может сильно коррелировать с этой более конкретной проблемой:
$ hostname --fqdn
hostname: Temporary failure in name resolution
Существуют различные способы решения этой проблемы, одним из которых является добавление вашего имени хоста в качестве localhost в /etc/hosts (как показано в нескольких других ответах). Это может быть правильным решением в целом, но это не единственное возможное решение.
«Полноценное доменное имя» может быть предоставлено внешним DNS-сервером или аналогичным (если таковое доступно в вашей сети). В этом случае sudo не будет жаловаться, несмотря на отсутствующую запись в /etc/hosts.
Примечание: sudo пытается разыменовать имя хоста, хотя это не " t обязательно из-за дополнительных возможностей в файле sudoers. См. Команду sudo, пытающуюся выполнить поиск имени хоста.
Пока задержка не слишком длинная, это сообщение об ошибке обычно является безвредным.
OP wrote:
Все было в / etc / hostname. На двух наших больничных серверах это выглядело так:ubuntu@(none):~$ cat /etc/hostname
linux-web-n ip-10-128-##-##
На сервере без этой проблемы у нас было: ubuntu@ip-10-128-##-###:~$ cat /etc/hostname
ip-10-128-##-###
Убрали часть linux-web-n, перезагрузили, и все было в порядке. У меня была такая же проблема! Я изменил имя своего VPS через панель управления онлайн-администратором, которая не изменила имя машины в файле hosts. Все, что я сделал, было запущено:
sudo nano /etc/hosts
Затем я отредактировал это из этого:
127.0.1.1 Megabyte Megabyte
127.0.0.1 localhost
К этому:
127.0.1.1 Debian Debian
127.0.0.1 localhost
и исправил мою ошибку! Надеюсь, это помогло!
Если вы используете Vagrant, войдите в гостевую систему и запустите apt-get --no-install-recommends install virtualbox-guest-utils
Я столкнулся с этим же сообщением об ошибке. Я думаю, что эта дискуссионная тема на форумах разработчиков AWS - лучшее решение:
«Перейдите в консоль управления VPC, выберите VPC, нажмите« Действия », выберите« Редактировать имена хостов DNS »и выберите« Да ».«
https://forums.aws.amazon.com/thread.jspa?messageID=699718
В моем случае это была проблема, я изменил hostname на man, потому что хотел узнать, есть ли какие-то параметры, которые вы можете использовать на hostname. Вместо этого он изменил мои hostname на man, и я всегда получал то же сообщение, что и вы
sudo: unable to resolve host (none)
после изменения имени хоста на «localhost», все снова работало нормально
hostname localhost
Извините, я не могу вам помочь, но, поскольку он говорит «не удается разрешить хост», попробуйте запустить:
hostname
И посмотрите, является ли вывод именем хоста машины. Если нет, проблема в конфигурации хоста, а не в sudo.
У меня была такая же проблема, хотя имя хоста в файле / etc / hostname и / etc / hosts совпало.
Мое имя хоста было «staging_1». Оказывается, у вас не может быть подчеркивания в вашем имени хоста, поэтому я получаю эту ошибку. Изменение подчеркивания на дефис исправило мою проблему.
Добавьте свое имя хоста в /etc/hosts следующим образом:
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts
Обратите внимание, что это ответ на этот вопрос, который был объединен с этим.
Ваше имя хоста (dave00-G31M-ES2L) не представлено в /etc/hosts. Добавьте L в эту строку:
127.0.1.1 dave00-G31M-ES2
Таким образом, это будет:
127.0.1.1 dave00-G31M-ES2L
Чтобы выполнить это, откройте консоль (нажмите Ctrl + Alt + T) и введите:
sudo gedit /etc/hosts
Добавьте письмо L, как указано, сохраните и выйдите.
Некоторые эмуляторы терминала не будут обновлять приглашение с правильным именем хоста, пока вы не закроете и не перезапустите эмулятор (lxterminal, я говорю с вами).
Я потратил 30 минут на борьбу с этой ошибкой после редактирования моего имени хоста и файлов хостов и запуска sudo service hostname restart до тех пор, пока не запустил sudo hostname и не увидел, что имя хоста было новым значением, даже если в подсказке было показано старое значение.
В AWS перейдите на свой vpc и включите «DNS Hostnames».
, если вы не можете sudo вы МОЖЕТ войти в систему с правами root через su. IE: su root (в x-term). затем введите пароль root при появлении запроса, затем вы можете редактировать файлы с помощью nano. Пароль root в «buntu» совпадает с паролем, который вы используете для sudo.
У меня была эта проблема, когда я использовал ubuntu на VPS. Я решил, что он редактирует файл / etc / hosts.
запустите эту команду:
sudo nano /etc/hosts
, а затем добавьте:
127.0.0.1 localhost.localdomain localhost
127.0.1.1 ubuntu
Надеюсь, что это решит ваша проблема:)
PS: Не забудьте перезагрузить компьютер!
вы можете получить сообщение об ошибке, если ваши хосты или файл хоста содержат недопустимые символы. Разрешены только эти символы: a-z, A-Z, 0-9
У меня была та же проблема. Я решил это, отредактировав файлы / etc / hosts и / etc / hostname ... в файле / etc / hosts, просто отредактируйте верхнюю часть, как показано ниже.
#vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 localhost myhostname
#vi /etc/hostname
myhostname
Симптом, данный в вопросе, может сильно коррелировать с этой более конкретной проблемой:
$ hostname --fqdn
hostname: Temporary failure in name resolution
Существуют различные способы решения этой проблемы, одним из которых является добавление вашего имени хоста в качестве localhost в /etc/hosts (как показано в нескольких других ответах). Это может быть правильным решением в целом, но это не единственное возможное решение.
«Полноценное доменное имя» может быть предоставлено внешним DNS-сервером или аналогичным (если таковое доступно в вашей сети). В этом случае sudo не будет жаловаться, несмотря на отсутствующую запись в /etc/hosts.
Примечание: sudo пытается разыменовать имя хоста, хотя это не " t обязательно из-за дополнительных возможностей в файле sudoers. См. Команду sudo, пытающуюся выполнить поиск имени хоста.
Пока задержка не слишком длинная, это сообщение об ошибке обычно является безвредным.
OP wrote:
Все было в / etc / hostname. На двух наших больничных серверах это выглядело так:ubuntu@(none):~$ cat /etc/hostname
linux-web-n ip-10-128-##-##
На сервере без этой проблемы у нас было: ubuntu@ip-10-128-##-###:~$ cat /etc/hostname
ip-10-128-##-###
Убрали часть linux-web-n, перезагрузили, и все было в порядке.