无法通过外部IP(nodejs)访问Google云计算引擎VM

时间:2020-01-19 23:10:57

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

出于测试目的,我创建了一个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。我也将'express'更改为'app'。

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

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

问题已解决:

我知道了。我在VM上安装了ufw,并打开了端口8000。这是我的解决方案。

1 个答案:

答案 0 :(得分:1)

解决方案:

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