如何在Google Compute Engine中打开特定的端口,例如9090
我有2个Google Compute Engine实例,我想在两个实例中打开端口9090。 我想我们需要添加一些防火墙规则。 但我不知道究竟需要做什么。 有谁能帮我找出我该怎么做?
你需要:
-
转到cloud.google.com
-
转到我的控制台
-
select你的项目。
-
selectnetworking> VPCnetworking
-
select“防火墙规则”
-
select创build防火墙规则
-
要仅将规则应用于selectVM实例,请select目标“指定的目标标签”,然后在“目标标签”中input用于确定规则应用于哪些实例的标签。 然后确保实例具有应用的networking标记。
-
要允许传入的TCP端口9090,请在“协议和端口”中input
tcp:9090
-
点击创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新规则没有任何区别。