Как открыть определенный порт, такой как 9090 в Google Compute Engine

У меня есть два экземпляра Google Compute Engine, и я хочу открыть порт 9090 в обоих экземплярах. Я думаю, нам нужно добавить некоторые правила брандмауэра.

Можете ли вы сказать мне, как я могу это сделать?

тебе нужно:

  1. Перейдите на страницу cloud.google.com.

  2. Перейти к моей консоли

  3. Выберите проект.

  4. Выберите Сеть> Сеть VPC

  5. Выберите «Правила межсетевых экранов»

  6. Выберите «Создать правило брандмауэра»

  7. Чтобы применить правило только для выбора экземпляров виртуальной машины, выберите Целевые значения «Указанные целевые tags» и введите в тег «Целевые tags» тег, который определяет, к каким экземплярам применяется правило. Затем убедитесь, что в экземплярах применен сетевой тег.

  8. Чтобы разрешить входящий TCP-порт 9090, в «Протоколы и порты» введите tcp:9090

  9. Нажмите «Создать»

Надеюсь, это поможет вам.

Обновление Пожалуйста, обратитесь к документам , чтобы настроить свои правила.

Ниже приведен подход командной строки для ответа на этот вопрос:

 gcloud compute firewall-rules create  --allow tcp:9090 --source-tags= --source-ranges=0.0.0.0/0 --description="" 

Это откроет порт 9090 для экземпляров, которые вы называете. --source-tags и --source-ranges применит правило ко всем экземплярам. Более подробная информация содержится в документации Gcloud, а firewall-rule create командного руководства

Предыдущие ответы велики, но Google рекомендует использовать новые команды gcloud вместо команд gcutil .

PS: Чтобы получить представление о правилах брандмауэра Google, запустите gcloud compute firewall-rules list и просмотрите все правила брандмауэра

Вам нужно будет добавить правило брандмауэра, чтобы открыть входящий доступ к tcp:9090 к вашим экземплярам. Если у вас больше двух экземпляров, и вы хотите открыть только 9090 для этих двух, вам нужно убедиться, что есть тег, который разделяют эти два экземпляра. Вы можете добавлять или обновлять tags через консоль или в командной строке; Я бы рекомендовал использовать графический интерфейс для этого, если это необходимо, потому что он обрабатывает цикл чтения-изменения-записи с помощью 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 Networking .

Во-вторых, если вы пытаетесь открыть порты на виртуальной ufw Linux, убедитесь, что ни при каких обстоятельствах не пытайтесь открыть порт с ufw команды ufw . Я попытался использовать это и потерял ssh-доступ к виртуальной машине. Поэтому не повторяйте мою ошибку.

В-третьих, если вы пытаетесь открыть порты на виртуальной машине Windows, вам необходимо создать правила брандмауэра внутри виртуальной машины и в брандмауэре Windows вместе с VPC Networking -> Правилами межсетевого экрана . Порт должен быть открыт в обоих правилах брандмауэра, в отличие от Linux VM. Поэтому, если вы не получаете доступ к порту извне виртуальной машины, проверьте, открыли ли вы порт как в консоли GCP, так и в брандмауэре Windows.

Последняя (очевидная) вещь заключается в том, чтобы не открывать порты без необходимости. Закройте порты, как только это вам больше не понадобится.

Надеюсь, этот ответ полезен.

Interesting Posts

objective «База» против «Активный» и «Развертывание»

R разделить числовой вектор в позиции

Вектор объектов, принадлежащих признаку

Быстрая перестановка -> число -> алгоритмы перестановочного отображения

Что означает «сброс соединения с помощью сверстника»?

Что за и против: положить javascript в голову и поставить перед телом закрыть

Есть ли способ получить истинный IP-адрес кого-то, маскирующего свой IP-адрес?

параметризованные запросы против SQL-инъекций

Объективные переменные уровня статического classа

Разбор строки JSON в Java

Обновление Windows 10 имеет 100% -ное использование процессора при запуске

Переменные экземпляра для объектов Objective C

Как перекомпилировать с -fPIC

Установите Windows 7 с использованием MSDN ISO и Key из моего недавно приобретенного ноутбука Gateway

Будет ли чистая установка Windows 8 распознать лицензионный ключ / ключ продукта OEM?

Давайте будем гением компьютера.