Google Cloud上的虚拟Ubuntu VM无法通过nodejs,external ip连接

var express = require('express'); var bodyParser = require('body-parser'); var path = require('path'); var app = express(); app.listen(3000, function(){ console.log('Server up on Port 3000'); }); 

我在这里search和尝试其他解决scheme,但我仍然无法弄清楚

我有一个谷歌云计算引擎(VM)的Ubuntu,我试图从我的笔记本电脑上的互联网访问它。 我正在使用nodejs / npm / express。

以上是我的index.js文件(非常基本),当我开始在VM上使用以下内容

 nodejs index.js 

35.188.226.109是虚拟机的外部IP地址

当浏览铬到http://35.188.226.109:3000/它说,该网站无法到达。

我错过了什么?

在GCP中启动VM时,它将连接到默认networking。 该默认networking处于最安全的设置,并将除了SSH和其他一些端口以外的所有端口都具有基于防火墙的端口阻塞。

为了允许外部应用程序与您的VM进行通信,您必须启用来自防火墙的端口才能访问您的机器。

防火墙设置可以在这里find。

在你的情况下,添加一个新的防火墙规则,允许从所有的IP端口3000。 请记住,这不是最好的做法。 使用端口转发,代理等