问题描述
我已在我的VM实例中将Debian Stretch安装为操作系统。我已下载(通过git)已安装的AllStarLink软件,以将其安装在上述实例中。
在安装和测试期过后,我运行了VM实例并正常运行。该应用程序似乎已在allstarlink.org注册服务器上进行了注册,但是-如果我尝试从外部访问该应用程序-系统会拒绝我的连接。
我需要端口4569 / udp才能与该应用程序一起使用,但是在编写了多个防火墙规则之后,该实例仍然拒绝越位连接。
防火墙规则允许我进行连接的正确配置是什么?
谢谢!
解决方法
Compute Engine网络中有一些implied rules用某些exceptions like SSH,RDP等来阻止所有传入流量,并允许所有传出流量。
要允许4569(或文档中未提及的任何其他端口)上的流量,您必须使用GCP控制台或[gcloud
实用工具create a new firewall rule 4。
在我们的情况下,您必须指定
您可以使用Google Cloud创建或修改VPC防火墙规则 控制台,gcloud命令行工具和REST API。当您创建或 修改防火墙规则,您可以指定防火墙实例 旨在通过使用规则的目标组成部分来应用。
您的gcloud
命令如下所示:
gcloud compute --project=my-project-name firewall-rules create my-rule1 --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:4569,udp:4569
但是,您需要确保实例也允许该端口(by default Debian Stretch doesn't block anything上的传入流量。要确保登录到VM并运行以下命令:sudo iptables -L
;您应该看到类似以下的内容:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
这是默认的防火墙配置,这意味着允许所有通信(打开和关闭)。