2014-01-11 53 views
88

我有两个Google Compute Engine实例,我想在两个实例中打开端口9090。我认为我们需要添加一些防火墙规则。但我不知道究竟需要做什么。任何人都可以帮我找出我该怎么做?如何在Google Compute Engine中打开特定端口(如9090)

+2

我认为这个问题已经有了答案。你介意选择下面的答案之一吗?这将有助于未来的读者更容易认识到这个问题已经解决。 – modulitos

回答

170

你需要:

  1. 转到cloud.google.com

  2. 转到我的控制台

  3. 选择您项目。

  4. 选择网络>​​ VPC网络

  5. 选择 “防火墙规则”

  6. 选择创建防火墙规则

  7. 要将规则只选择VM实例,选择目标“规定的目标标签“,然后在”目标标签“中输入用于确定规则应用于哪些实例的标签。然后确保实例具有应用的网络标记。

  8. 允许传入TCP端口9090,在 “协议和端口” 中输入tcp:9090

  9. 单击创建

我希望这可以帮助您。

+1

伟大的一步一步,谢谢。 – Deleplace

+3

计算引擎没有“网络”选项(已?) – default

+4

是的,现在没有网络选项,更新的路径是项目 - >网络 - >防火墙规则 –

9

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

如果要打开端口9090到所有的情况下,你可以创建防火墙规则,如:

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

将适用于所有的实例。

如果你只是想打开端口9090到被服务的应用程序的两个实例,确保他们有一个标签像my-app,然后再加一个防火墙,像这样:

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

你可以阅读更多关于creating and managing firewalls in GCE here

+5

'gcutil'不再可用;请使用'gcloud'重写你的命令行。 –

6

我遇到了同样的问题,我可以通过遵循@CarlosRojas指令来解决这个问题。我没有创建新的防火墙规则,而是编辑了default-allow-internal,因为创建新规则没有任何区别。

+0

需要负责创建新的防火墙规则。您是否通过编辑此规则来避免这种情况? – killjoy

+0

@killjoy我不确定。我目前没有使用谷歌计算引擎。抱歉。 – Nevershowmyface

+0

@Nevershowmyface你真棒 – Tejas

46

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

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 documentationthe firewall-rule create command manual

以前的答案是伟大的,but Google recommends使用较新的gcloud命令,而不是gcutil命令。

PS: 要获得谷歌的防火墙规则的想法,运行gcloud compute firewall-rules list并查看您的所有防火墙规则

+0

当我使用' - 描述“部分,但否则这对我很有用。 – shabbychef

+0

我不确定他们是否改变了api,但源和目标似乎与@modulitos的答案相反。根据[firewall-rules命令文档](https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create),“source”表示传入流量,而“target”表示实例将规则应用于。 – cindyxiaoxiaoli

+0

'错误:(gcloud.compute.firewall-rules.create)无法获取资源: - 权限不足@modulitos – Alper

相关问题