Я запустил новый экземпляр aws
. Мой приватный ip ip-10-0-xx-xx
соответствует консоли amazon. Каждый раз, когда я выполняю команду sudo, я получаю следующую ошибку:
sudo: unable to resolve host ip-10-0-xx-xx
Как я могу исправить эту ошибку?
Я запустил новый экземпляр aws
. Мой приватный ip ip-10-0-xx-xx
соответствует консоли amazon. Каждый раз, когда я выполняю команду sudo, я получаю следующую ошибку:
sudo: unable to resolve host ip-10-0-xx-xx
Как я могу исправить эту ошибку?
Кажется, что он не может разрешить хост, поэтому вы можете помочь ему, добавив эту строку в /etc/hosts
10.0.xx.xx ip-10-0-xx-xx
Ниже приведен ответ с помощью enableDnsHostnames - лучшее решение с помощью
Эта проблема вызвана не включением enableDnsHostnames
в вашу конфигурацию VPC.
enableDnsHostnames
Указывает, будут ли экземпляры, запущенные в VPC, получить имена хостов DNS. Если этот атрибут истинен, экземпляры VPC получают имена хостов DNS; в противном случае они этого не делают. Если вы хотите, чтобы ваши экземпляры получили имена хостов DNS, вы также должны установить для атрибута
enableDnsSupport
значение true.
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html#vpc-dns-updating
Это сработало для меня:
Добавьте следующую строку в /etc/hosts
127.0.0.1 ip-xxx-xx-x-xx
IP-адрес - это ваш частный IP-адрес
enableDnsHostnames
, как описано в комментарии Майкла, является одним из предварительных условий. У другого есть параметр VPC настроен правильно настроенный параметр DHCP. Проблема, с которой вы сталкиваетесь, вызвана отсутствием строки search
на вашем /etc/resolv.conf
; он будет вставлен во время назначения DHCP, если вы установите соответствующий параметр domain-name
вашей DHCP. Прочтите связанный документ AWS.
Может легко удаляться из командной строки следующим образом:
sudo sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/"
И проверил, что перезагрузка или остановка, а затем запуск экземпляра aws сохранит его. Если он потерян, он может легко повторно применяться при загрузке и может быть добавлен в любое положение для новых vms.
Пример
До:
[email protected]:~$ sudo id
sudo: unable to resolve host ip-177-11-22-333
uid=0(root) gid=0(root) groups=0(root)
Fix:
[email protected]:~$ sudo sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/"
sudo: unable to resolve host ip-177-11-22-333
После:
[email protected]:~$ sudo id
uid=0(root) gid=0(root) groups=0(root)
[email protected]:~$
Два варианта:
Включение имен хостов DNS для вашего VPC, чтобы все экземпляры, запущенные в VPC, разрешали хост
Отредактируйте /etc/hosts и добавьте следующую строку
127.0.0.1 localhost
123.0.0.1 ip-10-0-1-18 ## (Replace with the private ip)
Это то, что вам нужно будет сделать для каждого экземпляра, который будет запущен в вашем VPC.
Моя проблема была вызвана неправильной настройкой параметров DHCP (в консоли VPC). Тип по умолчанию, который вы обычно хотите, выглядит следующим образом:
domain-name = ec2.internal
domain-name-servers = AmazonProvidedDNS
Каким-то образом мое domain-name
было изменено на us-east-1.compute.internal
, что привело к появлению sudo: unable to resolve host ip-10-0-xx-xx
предупреждение sudo: unable to resolve host ip-10-0-xx-xx
каждый раз, когда я запускаю sudo
. Вернувшись к параметрам DHCP выше, это исправлено.
Чтобы включить атрибут DnsSupport, просто используйте эту команду в своем терминале
aws ec2 describe-vpc-attribute --vpc-id vpc-****** --attribute enableDnsSupport
Обязательно замените * своим VPC Id для получения дополнительной информации https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-attribute.html