Назад | Перейти на главную страницу

Мой экземпляр облака Google больше не может разрешать внешние имена хостов

Вчера мне пришлось вернуться к недавнему снимку моего vm. Эта виртуальная машина работала безупречно в то время, когда я ее взял.

Но теперь я больше не могу разрешать URL-адреса этого хоста. Все команды git pull, все запросы curl, поиск узлов и т. Д. Не работают. Например:

host www.google.com ; connection timed out; no servers could be reached

Тем не менее, этот хост доступен из внешнего мира, поскольку я могу подключиться к нему по ssh, и поступающие HTTP-запросы обслуживаются.

Что я забываю?

Действительно, вам нужно иметь оба /etc/resolv.conf и /etc/hosts файлы, сконфигурированные соответствующим образом, чтобы правильно разрешать DNS-запрос конкретным хостам; в противном случае ваш запрос будет перенаправлен непосредственно на ваши DNS-серверы по умолчанию, и вы не сможете достичь того хоста, который должен быть объявлен в вышеупомянутых файлах. Это пример конфигурации файла /etc/hosts:

127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters

В конце файла вы можете добавить следующую строку:

169.254.169.254 metadata.google.internal

Говорят, что, как бы вы ни resolv.conf файл изменен третьими экземплярами, вы должны иметь возможность правильно разрешать хосты, объявленные в файле /etc/hosts.

Для получения дополнительной информации о внутреннем DNS и файле resolv.conf, взгляни на это ссылка на сайт.

Оказывается, файл /etc/resolv.conf был автоматически заполнен примерно через 18 часов после запуска экземпляра.

Не очень удобно, но рад, что решено.

Если бы я знал тогда, я бы смог решить проблему, добавив это в /etc/resolve.conf:

domain c.[Project ID].internal 
search c.[Project ID].internal.google.internal. 
nameserver 169.254.169.254