我正在尝试配置我的Google云端实例以允许外部流量,因此我可以设置网络套接字;但是,尽管为所有外部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(这显示在我的云仪表板中):
Name External Address Region Type In use by
crypto-iris-****** **.***.***.*** us-central1 Static VM instance my_instance_name (Zone a)
我还有一些Go客户端/服务器Web套接字代码,可以在我的计算机上使用localhost:8080作为地址。所以,我的问题是:我可以根据这些规则简单地将localhost替换为我的实例的外部静态IP吗?
我的客户端在端口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
根据要求提供代码,如果有人想看到它。
答案 0 :(得分:2)
问题:我的golang / gorilla服务器正在localhost:8080
上托管。我将其更改为0.0.0.0:8080
。顺利航行之后。
请参阅以下帖子,但基本上服务器正在侦听本地环回地址(仅适用于本地计算机),而不是外部世界。