【问题标题】:Google Compute Engine not reachable from selected external hosting (GoDaddy)无法从选定的外部主机访问 Google Compute Engine (GoDaddy)
【发布时间】:2018-01-12 18:17:51
【问题描述】:

我开发了一个简单的 node.js 应用程序,它位于一个定制的 Docker 容器中(基于 node:carbon 映像)。

docker run 命令是:

docker run -p 8087:8087 --restart=on-failure -t --name=$RUN_NAME \ 
--env-file $DEV_ENV -d $CONTAINER_NAME:$CONTAINER_TAG

我的网络服务器应该在端口 8087 上做出响应,它来自容器内部,以及通过从其他一些地方调用它来自虚拟机外部服务器(不在 Google Cloud 中)。

我的问题是我应该从我的 GoDaddy Linux 主机(curl call)中调用它,但从那里无法访问它:

* About to connect() to x.x.x.x port 8087 (#0)
* Trying x.x.x.x... Connection refused
* couldn't connect to host
* Closing connection #0

curl: (7) 无法连接到主机

注意:我已经打开了防火墙 8087 端口

请帮忙

【问题讨论】:

  • 你的容器端口绑定到主机了吗?如果没有,根据this 文档,docker 容器需要将其端口与主机绑定。 here 提供了这个简化的解释。我也可以看到类似的问题here
  • 是的,但感谢您指出!我已经更新了我的答案。

标签: google-cloud-platform google-compute-engine


【解决方案1】:

既然您说您已经检查过其他外部主机,您是否认为 GoDaddy 可能会阻止到端口 8087 的出站流量(可能是由于端口扫描或其他不良行为)?

您应该能够通过在非 GCP VM 上的 8087 上启动服务并测试来自 GoDaddy 的 curl 是否能够访问它来排除这种情况。

现在,根据您的描述,听起来像:

虚拟机->本地主机->虚拟机:有效 外部 -> 互联网 -> 虚拟机:有效 GoDaddy -> 互联网 -> 虚拟机:失败

如果其他外部主机正常工作,我会开始怀疑 GoDaddy,假设您已确保您的防火墙规则实际上对 0.0.0.0/0 而不是一些较小的子网开放。

【讨论】:

  • 您的最后一个猜想是正确的:我发现 GoDaddy 的防火墙只允许几个出站端口。他们的 HelpDesk 建议使用 443 端口...
猜你喜欢
  • 2015-03-19
  • 2016-09-09
  • 2019-01-25
  • 2017-06-03
  • 2014-08-22
  • 1970-01-01
  • 2018-08-06
  • 2015-11-05
  • 1970-01-01
相关资源
最近更新 更多