Я пытаюсь установить некоторые библиотеки из некоторых экземпляров, у которых нет внешних IP-адресов в сети VPC. В этой сети есть один экземпляр, у которого есть внешний IP-адрес и, следовательно, доступ в Интернет, который я пытаюсь использовать в качестве шлюза переадресации IP.
В настоящее время я пытаюсь проверить, правильно ли настроил:
nc -l <port>
и nc -v <ip> <port>
махинации, чтобы проверить, могут ли они открыть туннель через tcp.sudo sysctl -w net.ipv4.ip_forward=1
.Однако я все еще не могу получить доступ к IP-адресам в Интернете, например команда sudo apt-get install default-jdk
не работает с:
E: Failed to fetch http://europe-west1.gce.archive.ubuntu.com/ubuntu/pool/main/libx/libxt/libxt-dev_1.1.5-0ubuntu1_amd64.deb Unable to connect to europe-west1.gce.archive.ubuntu.com:http: [IP: 35.205.79.146 80]
Даже если
Я думаю, что это потенциально может иметь какое-то отношение к маршрутизации на уровне ОС, например, когда я ip route get
на интернет-адрес, он дает мне шлюз по умолчанию (10.0.0.1), и я не уверен, должно ли добавление этого нового маршрута изменить это? (IP-адрес экземпляра шлюза - 10.0.0.5, внутреннего экземпляра - 10.0.0.3).
ip route get 35.205.79.146
35.195.141.26 via 10.0.0.1 dev ens4 src 10.0.0.3
cache
Будем очень признательны за любые указания о том, как отлаживать дальше!
Как упоминалось в других комментариях, вам нужно будет использовать Облачный NAT чтобы ваши экземпляры без IP-адресов могли подключаться к Интернету. Вы можете настроить Cloud NAT, следуя пошаговым инструкциям. Вот.
Для этой конкретной проблемы я выполнил приведенные здесь инструкции, чтобы настроить NAT на основе экземпляра: https://cloud.google.com/vpc/docs/special-configurations - настройка экземпляра в качестве шлюза NAT. Шаг, который я упустил, - это настройка IPTables; после добавления это устранило мою проблему.
Однако, как предполагали другие, использование Cloud NAT может быть лучшим / идиоматическим способом сделать это сейчас на GCP для типичного варианта использования.