我有2个Google Compute Engine实例,我想在两个实例中都打开端口9090。我认为我们需要添加一些防火墙规则。
你能告诉我该怎么做吗?
我有2个Google Compute Engine实例,我想在两个实例中都打开端口9090。我认为我们需要添加一些防火墙规则。
你能告诉我该怎么做吗?
Answers:
你需要:
前往cloud.google.com
转到我的控制台
选择你的项目
选择“网络> VPC网络”。
选择“防火墙规则”
选择“创建防火墙规则”
要将规则应用于选择VM实例,请选择“目标”>“指定目标标签”,然后在“目标标签”中输入标签的名称。此标记将用于将新的防火墙规则应用于您想要的任何实例。然后,确保实例已应用网络标签。
要允许到端口9090的传入TCP连接,请在“协议和端口”中输入 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
零件时会抱怨,但是对于我来说这是可行的。
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,则需要确保有两个实例共享的标签。您可以通过控制台或命令行添加或更新标签。我建议在需要时使用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
您可以在此处阅读有关在GCE中创建和管理防火墙的更多信息。
gcutil
不再被提供; 请使用重写命令行gcloud
。
这个问题已经过时了,卡洛斯·罗哈斯(Carlos Rojas)的回答很好,但是我认为我应该公开一些在尝试打开端口时应记住的事情。
首先要记住的是,“ 网络”部分已重命名为“ VPC网络”。因此,如果您要尝试找到“ 防火墙规则”选项可用的位置,请查看“ VPC网络”。
第二件事是,如果要在Linux VM上打开端口,请确保在任何情况下都不要尝试使用ufw
command 打开端口。我尝试使用它,但失去了对VM的ssh访问权限。所以不要重复我的错误。
第三件事是,如果你想在Windows虚拟机开放端口,你需要创建VM也在内部防火墙规则Windows防火墙沿VPC联网- >防火墙规则。与Linux VM不同,这两个防火墙规则都需要打开该端口。因此,如果您无法从VM外部访问端口,请检查是否已在GCP控制台和Windows防火墙中打开了该端口。
最后(显而易见)的事情是,不要不必要地打开端口。不再需要时,请关闭端口。
我希望这个答案是有用的。
ufw
命令打开了一些特定的端口并且我仍然具有ssh访问权限。
我遇到了与您相同的问题,可以按照@CarlosRojas的说明解决,但有一点点不同。我没有创建新的防火墙规则,而是编辑了default-allow-internal
它以接受来自任何地方的流量,因为创建新规则没有任何区别。
创建防火墙规则
如果您不熟悉GCP中的防火墙规则,请查看防火墙规则组件[1]。防火墙规则是在网络级别定义的,仅适用于创建它们的网络。但是,您为每个选项选择的名称对于项目必须是唯一的。
对于云控制台:
指定规则的目标。
对于入口规则,请指定“源”过滤器:
对于出口规则,请指定“目标”过滤器:
定义规则将应用到的协议和端口:
选择“全部允许”或“全部拒绝”,具体取决于操作,以使规则适用于所有协议和端口。
定义特定的协议和端口:
(可选)可以通过将防火墙实施规则的执行状态设置为Disabled来创建防火墙规则,但不能实施该规则。单击禁用规则,然后选择禁用。
(可选)您可以启用防火墙规则日志记录:
单击创建。
链接:[1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components