Google Cloud Compute продолжает изменять файл / etc / hosts после перезагрузки

Я играл с 3 экземплярами Google облачных вычислений, используя webmin / virtualmin (веб-хостинг и электронную почту), только Vestacp (только хостинг) и панели управления ISPconfig (только для хостинга).

Экземпляр ISPConfig имеет статический внешний IP-адрес, однако остальные 2 на этом этапе - dhcp.

Все 3 экземпляра используют динамически назначенные внутренние IP-адреса, хотя я еще не видел, чтобы какой-либо из этих IP-адресов изменялся в 6 месяцев тестирования и перезапуска и удаления и повторного развертывания. Всякий раз, когда я удаляю экземпляр, используется одна и та же внутренняя ip-последовательность (т. Е. Любой следующий нижний неназначенный доступный номер повторно добавляется как внутренний IP-адрес).

У меня возникают некоторые проблемы с форсированием облака Google bloodywell перестает меня менять конфигурацию моего хоста -f в файле / etc / hosts.

Он должен прочитать

127.0.0.1 localhost.localdomain localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.x.x.x server1.foo.com.au server1

(где x - мой внутренний IP-адрес, «foo» - это мой доменное имя)

Однако в любом из трех экземпляров моего экземпляра, как только я перезагружу экземпляр, облако Google добавляет свой собственный код обратно при следующем перезапуске. т.е. по умолчанию облако Google продолжает изменять файл, чтобы читать те же строки, что и строки «#, добавленные Google», как показано ниже

127.0.0.1 localhost.localdomain localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.x.x.x server1.foo.com.au server1 10.x.x.x server1.c.bar.internal server1 # Added by Google 169.254.169.254 metadata.google.internal # Added by Google

(где x - мой внутренний IP-адрес, «foo» - это мой фактический домен имя и «бар» - это мой идентификатор проекта в облаке Google)

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

-Do i сделать это из API Google облачных DNS? - установить статический внутренний IP-адрес в настройках сети Google Cloud? -setup скрипт, который продолжает проверять изменение этого файла и немедленно заменять любые изменения, которые пытается сделать Google Cloud? - или мне нужно изменить информацию метаданных в последней строке файла моих хостов, чтобы в ней не было строки «... metadata.google.internal # Added by Google»

В настоящее время опция 1 выше не работает. Как только я включу API DNS, попробуйте ввести его, я получаю сообщение об ошибке «не удалось загрузить» из моей облачной консоли google. Это пылающая боль в заднице !!! (я отправил запрос поддержки google ... кто знает, сколько времени потребуется для ответа)

3
задан 1 October 2017 в 02:40

3 ответа

Вариант Ghetto, который может не работать: sudo chattr +i /etc/hosts

Подробные сведения о файле man chattr, но это делает файл «(i) mmutable», что означает, что даже root не может его изменить (кроме root chattr -i /etc/hosts во-первых, конечно).

Как и выше, вы можете отменить это с помощью sudo chattr -i /etc/hosts

Почему это происходит: я предполагаю, что у вас есть процесс (возможно, dhcpcd или что-то еще), который получает информацию о хосте из некоторого источника, а затем обновляет различные файлы, включая / etc / hosts (и, вероятно, /etc/resolv.conf, поэтому я закончил использование chattr). Правильный способ исправить ситуацию - выяснить, что делает этот процесс, и настроить его на правильную работу. Вы также можете сделать «cp /etc/hosts.correct / etc / hosts» после того, как процесс завершится с помощью вашего файла, но вам нужно сделать это достаточно поздно в процессе загрузки, что это происходит после того, как процесс завершен.

2
ответ дан 22 May 2018 в 17:58
  • 1
    @Zanna Я сделал это ранее с другим файлом по другой причине. Я надеялся, что ОП подтвердит, что это сработало, и тогда я объясню это. Если бы это был комментарий? Мне сказали ранее, что многие из моих комментариев действительно должны быть ответами. На этот раз я перевернул это неправильно? – barrycarter 1 October 2017 в 16:27
  • 2
    Хм, я бы не сказал, что это должен быть комментарий, хотя я иногда предлагаю что-то, что может работать в комментариях, как правило, когда проблема не очень ясна, и попытки показать, что происходит, я бы сказал, просто добавьте объяснение в первое место. Я не могу придумать никакого ответа, который с большей вероятностью будет работать без объяснений :) здесь хорошая ссылка на комментарии-ответы – Zanna 1 October 2017 в 16:38
  • 3
    Хорошо, немного улучшилось. – barrycarter 1 October 2017 в 18:37
  • 4
    извините, ребята, я публиковал на стольких форумах ... я не проверял это раньше. Прежде чем перейти к предложению sudo chattr + i / etc / hosts, могу ли я отменить это, если он не работает? Я не хочу ничего писать. Кроме того, может ли кто-нибудь подумать о причине, почему вычисление облака Google продолжает менять файл hosts на свои собственные значения по умолчанию таким образом? (происходит ли подобное с другими провайдерами, такими как Amazon или Azure?) Кроме того, я бы просто хотел добавить, если я оставлю добавленные строки Google, как они есть, и добавьте мою собственную строку над ними, моя панель управления отображает исправить имя хоста fqdn. Это нормально? – adam 3 October 2017 в 07:00
  • 5
    просто добавлю, я сделал предлагаемое изменение sudo nano / etc / hosts (прокомментировал первую строку «добавлен Google», затем я выполнил sudo chattr + i / etc / hosts, как было предложено ... это сработало очарование Я просто хотел бы сделать наблюдение, не прокомментирую вторую строку метаданных, которую Google добавляет в файл hosts. Выполнение этого будет заблокировано из доступа ssh из панели управления Google облаком. Мне повезло, что у меня был доступ к оболочке через панель управления webmin / virtualmin, чтобы отменить эту ошибку. – adam 3 October 2017 в 07:19

Вариант Ghetto, который может не работать: sudo chattr +i /etc/hosts

Подробные сведения о файле man chattr, но это делает файл «(i) mmutable», что означает, что даже root не может его изменить (кроме root chattr -i /etc/hosts, во-первых, конечно).

Как и выше, вы можете отменить это с помощью sudo chattr -i /etc/hosts

Почему это происходит: я предполагаю, что у вас есть процесс (возможно, dhcpcd или что-то еще), который получает информацию о хосте из некоторого источника, а затем обновляет различные файлы, включая / etc / hosts (и, вероятно, /etc/resolv.conf, поэтому я закончил использование chattr). Правильный способ исправить ситуацию - выяснить, что делает этот процесс, и настроить его на правильную работу. Вы также можете сделать «cp /etc/hosts.correct / etc / hosts» после того, как процесс завершится с помощью вашего файла, но вам нужно сделать это достаточно поздно в процессе загрузки, что это происходит после того, как процесс завершен.

2
ответ дан 18 July 2018 в 05:57

Вариант Ghetto, который может не работать: sudo chattr +i /etc/hosts

Подробные сведения о файле man chattr, но это делает файл «(i) mmutable», что означает, что даже root не может его изменить (кроме root chattr -i /etc/hosts, во-первых, конечно).

Как и выше, вы можете отменить это с помощью sudo chattr -i /etc/hosts

Почему это происходит: я предполагаю, что у вас есть процесс (возможно, dhcpcd или что-то еще), который получает информацию о хосте из некоторого источника, а затем обновляет различные файлы, включая / etc / hosts (и, вероятно, /etc/resolv.conf, поэтому я закончил использование chattr). Правильный способ исправить ситуацию - выяснить, что делает этот процесс, и настроить его на правильную работу. Вы также можете сделать «cp /etc/hosts.correct / etc / hosts» после того, как процесс завершится с помощью вашего файла, но вам нужно сделать это достаточно поздно в процессе загрузки, что это происходит после того, как процесс завершен.

2
ответ дан 24 July 2018 в 18:28

Другие вопросы по тегам:

Похожие вопросы: