Sockets gcloud compute:为外部流量配置防火墙

Sockets gcloud compute:为外部流量配置防火墙,sockets,networking,go,google-compute-engine,gcloud,Sockets,Networking,Go,Google Compute Engine,Gcloud,我正在尝试配置我的谷歌云实例以允许外部流量,这样我就可以设置一个web套接字;然而,尽管为所有外部TCP/IP流量添加了一个规则,我还是无法访问它。我的规则是: gcloud compute firewall-rules list NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS default-allow-ssh default 0.0.0.0/0 tcp:22 external-traffic defaul

我正在尝试配置我的谷歌云实例以允许外部流量,这样我就可以设置一个web套接字;然而,尽管为所有外部TCP/IP流量添加了一个规则,我还是无法访问它。我的规则是:

gcloud compute firewall-rules list
NAME              NETWORK SRC_RANGES RULES   SRC_TAGS TARGET_TAGS
default-allow-ssh default 0.0.0.0/0  tcp:22
external-traffic  default 0.0.0.0/0  tcp,udp


gcloud compute instances list
NAME      ZONE          MACHINE_TYPE  PREEMPTIBLE INTERNAL_IP EXTERNAL_IP    STATUS
pi-server us-central1-a n1-standard-1             **.***.*.*  **.***.***.*** RUNNING
我已将其配置为静态IP(显示在我的云仪表板中):

我还有一些Go客户机/服务器web套接字代码,可以在我的计算机上使用localhost:8080作为地址完美地工作。所以,我的问题是:根据这些规则,我可以简单地用实例的外部静态IP替换localhost吗

我的客户端在端口8080上使用了
“github.com/gorilla/websocket”
。本地客户端的输出为:

connecting to ws://23.251.148.133:8080/echo
dial:dial tcp 23.251.148.133:8080: getsockopt: operation timed out
exit status 1

如果有人想查看,请根据请求进行编码。

问题:我的golang/gorilla服务器位于localhost:8080上。我把它改为
0.0.0.0:8080
。之后一切顺利

请参阅下面的文章,但基本上服务器是在侦听本地环回地址(仅对本地计算机可用),而不是外部世界


您是如何创建“外部流量”防火墙规则的?我想你可能需要通过一个特定的端口。对于端口8080上的websocket,这可能有效:gcloud计算防火墙规则创建websocket——允许tcp:8080更改为0.0.0.0:8080对我有效!非常感谢你这么做。
connecting to ws://23.251.148.133:8080/echo
dial:dial tcp 23.251.148.133:8080: getsockopt: operation timed out
exit status 1