【问题标题】:Virtual Ubuntu VM on Google Cloud can't connect via nodejs, external ipGoogle Cloud 上的虚拟 Ubuntu VM 无法通过 nodejs、外部 ip 连接
【发布时间】:2018-04-01 03:18:27
【问题描述】:
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');
});

我在这里搜索并尝试了其他解决方案,但我仍然无法弄清楚

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

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

nodejs index.js

35.188.226.109 是虚拟机的外部 ip

在 chrome 中导航到 http://35.188.226.109:3000/ 时,它表示无法访问该站点。

我错过了什么?

【问题讨论】:

  • 您必须从防火墙打开端口。检查您的默认网络并添加新的防火墙规则以允许来自所有 ip 的端口 tcp:3000,它应该可以正常工作。
  • 我在网关上添加了一条规则,但是没有区别。你的意思是在谷歌云上改变防火墙?
  • 是的。转到 console.cloud.google.com/networking/firewalls/list 并添加新的防火墙规则以允许流量流向您的实例。
  • 好的,谢谢!!!

标签: javascript node.js express npm google-cloud-platform


【解决方案1】:

当您在 GCP 中启动虚拟机时,它会连接到默认网络。该默认网络处于最安全的设置中,并且将对所有端口进行基于防火墙的端口阻止,除了 SSH 和少数其他端口。

为了允许外部应用程序与您的 VM 通信,您必须通过启用防火墙端口来启用对您计算机的访问。

防火墙设置可以在here找到。

在您的情况下,添加新的防火墙规则以允许来自所有 IP 的端口 3000。请记住,这不是最佳做法。使用端口转发、代理等。

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2021-03-30
    • 2015-05-22
    相关资源
    最近更新 更多