如何在Google Compute Engine中打开特定的端口,例如9090

我有2个Google Compute Engine实例,我想在两个实例中打开端口9090。 我想我们需要添加一些防火墙规则。 但我不知道究竟需要做什么。 有谁能帮我找出我该怎么做?

你需要:

  1. 转到cloud.google.com

  2. 转到我的控制台

  3. select你的项目。

  4. selectnetworking>​​ VPCnetworking

  5. select“防火墙规则”

  6. select创build防火墙规则

  7. 要仅将规则应用于selectVM实例,请select目标“指定的目标标签”,然后在“目标标签”中input用于确定规则应用于哪些实例的标签。 然后确保实例具有应用的networking标记。

  8. 要允许传入的TCP端口9090,请在“协议和端口”中inputtcp:9090

  9. 点击创build

我希望这可以帮助你。

下面是回答这个问题的命令行方法:

 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命令手册

以前的答案很好, 但Googlebuild议使用较新的gcloud命令而不是gcutil命令。

PS:要了解Google的防火墙规则,请运行gcloud compute firewall-rules list并查看您的所有防火墙规则

您需要添加防火墙规则以打开对您的实例的入站访问tcp:9090 。 如果你有两个以上的实例,而你只想打开9090这两个实例,你需要确保这两个实例共享一个标签。 您可以通过控制台或命令行添加或更新标签; 如果需要,我build议使用GUI,因为它使用setinstancetags处理读取 – 修改 – 写入周期。

如果要打开所有实例的端口9090,可以创build如下的防火墙规则:

 gcutil addfirewall allow-9090 --allowed=tcp:9090 

这将适用于所有的实例。

如果您只想打开端口9090到正在为您的应用程序提供服务的两个实例,请确保它们具有像my-app这样的标签,然后添加防火墙,如下所示:

 gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app 

您可以在这里阅读更多有关在GCE中创build和pipe理防火墙的信息 。

我遇到了同样的问题,我可以通过跟随@CarlosRojas指令来解决这个问题。 我没有创build一个新的防火墙规则,而是编辑了default-allow-internal规则,以接受来自任何地方的stream量,因为创build新规则没有任何区别。