【问题标题】:can't access google cloud compute engine VM through external IP (nodejs)无法通过外部IP(nodejs)访问谷歌云计算引擎VM
【发布时间】:2020-05-05 23:43:03
【问题描述】:

出于测试目的,我创建了一个 Google Cloud Compute Engine VM (Debian 9)。

我安装了 nodejs 并创建了一个小脚本。通过我的浏览器导航到 外部 IP 地址 时,没有任何反应。

const express = require('express')()

express.get('/', (req, res) => {
    console.log('browser access')
}

express.listen(8000, () => console.log('server is running'))

导航到 http://[EXTERNAL_IP_ADDRESS]:8000 时,没有任何反应。

  • 我可以通过外部 IP 进行 SSH 访问,它可以工作

  • 我可以 ping 到外部 IP 地址,这也可以

  • 通过终端(SSH 访问)执行“node app.js”时,我看到“服务器正在运行”

  • 我已设置防火墙规则以接受 tcp=8000(IP 范围 0.0.0.0/0)上的所有传入流量

  • 我有防火墙规则 default-allow-http (tcp: 80) 和 default-allow-https (tcp: 443)

  • 我有一个静态 IP 地址

我有什么遗漏吗?

编辑:

  • 当我通过浏览器访问服务器(使用 :8000)时,页面一直在加载。但是“浏览器访问”消息不会发送到控制台。假设 30 秒后,我在浏览器中收到 ERR_CONNECTION_TIME_OUT。

  • Express 版本是 4.17.1。我还将“快递”更改为“应用”。

  • 当我打开终端窗口并执行“curl EXTERNAL_IP_ADDRESS:8000”时,什么也没有发生。好像一直在加载。

  • 我将listen(8000) 更改为listen(8000, '0.0.0.0')。没有观察到差异。

问题已解决:

我让它工作了。我在虚拟机上安装了 ufw 并打开了 8000 端口。这就是我的解决方案。

【问题讨论】:

  • 你能详细说明“什么都没发生”吗?您在浏览器中看到了哪些消息? Node.js 是否表示已达到目标?你期待发生什么?您是否看到写入控制台的日志消息?如果您运行 netstat,您会看到在端口 8000 上侦听的内容吗?如果你使用 CURL 连接到 VM 上的 8000 端口,你会得到连接吗?
  • 快递的哪个版本?
  • 试试这个:express.listen(8000, '0.0.0.0'); 注意:我不会调用变量express。您正在掩盖app 的正常用法。
  • @Kolban:我已经编辑了我的问题,我已经为你的问题添加了答案。我期待在控制台中看到“浏览器访问”。除了“服务器正在运行”之外,我没有看到任何日志消息。当我使用 curl 时,我得到一个“操作超时”。
  • @John Hanley:express 是 4.17.1 版。我还将listen(8000)更改为listen(8000,'0.0.0.0')。问题保持不变。我还将“快递”更改为“应用程序”。

标签: node.js google-cloud-platform google-compute-engine


【解决方案1】:

解决方案:

我不仅需要向我的 VPC(0.0.0./0 tcp:8000,传入)添加防火墙规则,还需要在我的 VM 本身上打开端口 8000。我安装了ufw并打开了8000端口。它现在可以工作了。

【讨论】:

  • UFW 不是必需的。在您的问题中,您说您已经有一个允许端口 8000 的防火墙规则。
  • 哦,好的。但它解决了我的问题?我确实在 GCP 控制台中更新了防火墙规则,也许这就是解决方案。
  • 在安全方面,请确保您确切了解每个控件和设置的作用和不作用。这样你以后就不会有惊喜了。
  • 谁可能想了解更多关于ufw的信息,这个链接很有用linuxconfig.org/how-to-install-and-use-ufw-firewall-on-linux
猜你喜欢
  • 1970-01-01
  • 2017-02-23
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多