У меня есть 2 экземпляра Google Compute Engine, и я хочу открыть порт 9090 в обоих экземплярах. Я думаю, что нам нужно добавить некоторые правила брандмауэра.
Можете ли вы сказать мне, как я могу это сделать?
У меня есть 2 экземпляра Google Compute Engine, и я хочу открыть порт 9090 в обоих экземплярах. Я думаю, что нам нужно добавить некоторые правила брандмауэра.
Можете ли вы сказать мне, как я могу это сделать?
Ответы:
Тебе надо:
Перейдите на cloud.google.com.
Перейти к моей консоли
Выберите свой проект
Выберите «Сеть»> «Сеть VPC».
Выберите «Правила брандмауэров»
Выберите «Создать правило брандмауэра»
Чтобы применить правило для выбора экземпляров ВМ, выберите «Цели»> «Заданные целевые теги» и введите в «Целевые теги» имя тега. Этот тег будет использоваться для применения нового правила брандмауэра к любому экземпляру, который вы хотите. Затем убедитесь, что к экземплярам применен сетевой тег.
Чтобы разрешить входящие TCP-подключения к порту 9090, в поле «Протоколы и порты» введите tcp:9090
Нажмите Создать
Я надеюсь, это поможет вам.
Обновление Пожалуйста, обратитесь к документации, чтобы настроить ваши правила.
allow http
и allow https
я добавил новое правило брандмауэра , но я не могу найти его. Я тоже на свободном уровне, если это поможет.
Вот подход командной строки, чтобы ответить на этот вопрос:
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
и просмотрите все правила брандмауэра.
--description
часть, но в остальном это работает для меня.
source
означает входящий трафик, тогда как target
относится к экземплярам, к которым применяется правило.
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission
@modulitos
telnet :instance_ip :port
или nmap -p :port :instance_ip
?
Вам нужно будет добавить правило брандмауэра, чтобы открыть входящий доступ tcp:9090
к вашим экземплярам. Если у вас есть более двух экземпляров, и вы хотите открыть 9090 для этих двух экземпляров, вы должны убедиться, что есть тег, который разделяют эти два экземпляра. Вы можете добавлять или обновлять теги через консоль или командную строку; Я бы рекомендовал использовать графический интерфейс для этого, если это необходимо, потому что он обрабатывает цикл чтения-изменения-записи с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 вы можете прочитать здесь .
gcutil
больше недоступно; пожалуйста, перепишите ваши командные строки, используя gcloud
.
Этот вопрос старый, и ответ Карлоса Рохаса хороший, но я думаю, что я должен опубликовать несколько вещей, которые следует учитывать при попытке открыть порты.
Первое, что нужно запомнить, это то, что раздел Networking переименован в VPC Networking . Так что, если вы пытаетесь выяснить, где доступна опция « Правила межсетевого экрана» , посмотрите на VPC Networking .
Во-вторых, если вы пытаетесь открыть порты на виртуальной машине Linux, ни в коем случае не пытайтесь открыть порт с помощью ufw
команды. Я попытался использовать это и потерял доступ SSH к виртуальной машине. Так что не повторяй мою ошибку.
В-третьих, если вы пытаетесь открыть порты на виртуальной машине Windows, вам необходимо создать правила брандмауэра внутри виртуальной машины также в брандмауэре Windows вместе с сетью VPC -> Правила брандмауэра . Порт должен быть открыт в обоих правилах брандмауэра, в отличие от виртуальной машины Linux. Поэтому, если вы не получаете доступ к порту извне виртуальной машины, проверьте, открыли ли вы порт в консоли GCP и брандмауэре Windows.
Последнее (очевидное), что не открывайте порты без необходимости. Закройте порты, как только они вам больше не понадобятся.
Я надеюсь, что этот ответ полезен.
ufw
команды, и у меня все еще есть доступ по ssh.
У меня была та же проблема, что и у вас, и я мог ее решить, следуя инструкциям @CarlosRojas, с небольшой разницей. Вместо того, чтобы создавать новое правило брандмауэра, я отредактировал правило, default-allow-internal
принимающее трафик из любой точки, поскольку создание новых правил не имело никакого значения.
Создание правил брандмауэра
Пожалуйста, просмотрите компоненты правил брандмауэра [1], если вы не знакомы с правилами брандмауэра в GCP. Правила брандмауэра определяются на уровне сети и применяются только к сети, в которой они созданы; однако имя, которое вы выбираете для каждого из них, должно быть уникальным для проекта.
Для облачной консоли:
Укажите Цели правила.
Для правила входа укажите фильтр источника:
Для выходного правила укажите фильтр назначения:
Определите протоколы и порты, к которым будет применяться правило:
Выберите Разрешить все или Запретить все, в зависимости от действия, чтобы правило применялось ко всем протоколам и портам.
Определите конкретные протоколы и порты:
(Необязательно) Вы можете создать правило брандмауэра, но не применять его, установив для него состояние принудительного отключения отключенным. Нажмите Отключить правило, затем выберите Отключено.
(Необязательно) Вы можете включить ведение журнала правил брандмауэра:
Нажмите Создать.
Ссылка: [1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components
console.cloud.google.com >> выберите проект >> Сеть> Сеть VPC >> брандмауэры >> создать брандмауэр.
Чтобы применить правило к экземплярам виртуальной машины, выберите «Цели», «Заданные целевые теги» и введите в «Целевые теги» имя тега. Этот тег будет использоваться для применения нового правила брандмауэра к любому экземпляру, который вы хотите.
в "Протоколы и порты" введите tcp: 9090
Нажмите Сохранить.