У меня есть 2 экземпляра Google Compute Engine, и я хочу открыть порт 9090 в обоих экземплярах. Я думаю, что нам нужно добавить некоторые правила брандмауэра.
Можете ли вы сказать мне, как я могу это сделать?
У меня есть 2 экземпляра Google Compute Engine, и я хочу открыть порт 9090 в обоих экземплярах. Я думаю, что нам нужно добавить некоторые правила брандмауэра.
Можете ли вы сказать мне, как я могу это сделать?
Вам нужно:
Перейдите на cloud.google.com.
Перейти к моей консоли
Выберите свой проект
Выберите "Сеть"> "Сеть VPC".
Выберите "Правила брандмауэров"
Выберите "Создать правило брандмауэра"
Чтобы применить правило для выбора экземпляров ВМ, выберите "Цели"> "Заданные целевые теги" и введите в "Целевые теги" имя тега. Этот тег будет использоваться для применения нового правила брандмауэра к любому экземпляру, который вы хотите. Затем убедитесь, что к экземплярам применен сетевой тег.
Чтобы разрешить входящие TCP-подключения к порту 9090, в "Протоколы и порты" введите tcp:9090
Нажмите Создать
Я надеюсь, это поможет вам.
Обновление Пожалуйста, обратитесь к документации, чтобы настроить ваши правила.
Ниже приведен подход командной строки для ответа на этот вопрос:
gcloud compute firewall-rules create <rule-name> --allow tcp:9090 --source-tags=<list-of-your-instances-names> --source-ranges=0.0.0.0/0 --description="<your-description-here>"
Это откроет порт 9090
для имен, которые вы назовете. Опускание --source-tags
и --source-ranges
применит правило ко всем экземплярам. Более подробная информация содержится в документации Gcloud и руководство пользователя firewall-rule create
Предыдущие ответы велики, но Google рекомендует использовать новые команды gcloud
вместо команд gcutil
.
PS:
Чтобы получить представление о правилах брандмауэра Google, запустите gcloud compute firewall-rules list
и просмотрите все правила брандмауэра.
Вам нужно добавить правило брандмауэра, чтобы открыть входящий доступ к tcp:9090
к вашим экземплярам. Если у вас больше двух экземпляров, и вы хотите открыть только 9090 для этих двух, вам нужно убедиться, что есть тег, который разделяют эти два экземпляра. Вы можете добавлять или обновлять теги через консоль или в командной строке; Я бы рекомендовал использовать GUI для этого, если это необходимо, потому что он обрабатывает цикл read-modify-write с помощью setinstancetags
.
Если вы хотите открыть порт 9090 для всех экземпляров, вы можете создать правило брандмауэра, например:
gcutil addfirewall allow-9090 --allowed=tcp:9090
который будет применяться ко всем вашим экземплярам.
Если вы хотите открыть порт 9090 для двух экземпляров, обслуживающих ваше приложение, убедитесь, что у них есть тег типа my-app
, а затем добавьте брандмауэр следующим образом:
gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app
Подробнее о о создании и управлении брандмауэрами в GCE здесь.
У меня была такая же проблема, как и у вас, и я мог ее решить, следуя инструкциям @CarlosRojas с небольшой разницей. Вместо создания нового правила брандмауэра я отредактировал default-allow-internal
один, чтобы принимать трафик из любого места, поскольку создание новых правил не имело никакого значения.
Этот вопрос старый, и Карлос Рохас ответит хорошо, но я думаю, что я должен опубликовать несколько вещей, которые следует иметь в виду при попытке открыть порты.
Первое, что нужно запомнить, это то, что раздел Networking переименован в VPC Networking. Поэтому, если вы пытаетесь выяснить, где доступна опция " Правила межсетевого экрана", посмотрите на сеть VPC.
Во-вторых, если вы пытаетесь открыть порты на виртуальной ufw
Linux, ни в коем случае не пытайтесь открыть порт с ufw
команды ufw
. Я попытался использовать это и потерял доступ SSH к виртуальной машине. Так что не повторяй мою ошибку.
В-третьих, если вы пытаетесь открыть порты на виртуальной машине Windows, вам необходимо создать правила брандмауэра внутри виртуальной машины также в брандмауэре Windows вместе с сетью VPC → Правила брандмауэра. Порт должен быть открыт в обоих правилах брандмауэра, в отличие от виртуальной машины Linux. Поэтому, если вы не получаете доступ к порту извне виртуальной машины, проверьте, открыли ли вы порт в консоли GCP и брандмауэре Windows.
Последнее (очевидное): не открывайте порты без необходимости. Закройте порты, как только они вам больше не понадобятся.
Я надеюсь, что этот ответ полезен.
Создание правил брандмауэра
Пожалуйста, просмотрите компоненты правил брандмауэра [1], если вы не знакомы с правилами брандмауэра в GCP. Правила брандмауэра определяются на уровне сети и применяются только к сети, в которой они созданы; однако имя, которое вы выбираете для каждого из них, должно быть уникальным для проекта.
Для облачной консоли:
Укажите Цели правила.
Для правила входа укажите фильтр источника:
Для выходного правила укажите фильтр назначения:
Определите протоколы и порты, к которым будет применяться правило:
Выберите Разрешить все или Запретить все, в зависимости от действия, чтобы правило применялось ко всем протоколам и портам.
Определите конкретные протоколы и порты:
(Необязательно) Вы можете создать правило брандмауэра, но не применять его, установив для него состояние принудительного отключения отключенным. Нажмите Отключить правило, затем выберите Отключено.
(Необязательно) Вы можете включить ведение журнала правил брандмауэра:
Нажмите Создать.
Ссылка: [1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components
Вы можете проверить ниже ссылку для открытия порта Google Cloud.
Открытие порта в Google Cloud
Мне пришлось исправить это, уменьшив приоритет (сделав его выше). Это вызвало немедленный ответ. Не то, что я ожидал, но это сработало.