无法通过外部 IP (nodejs) 访问 google 云计算引擎 VM
can't access google cloud compute engine VM through external IP (nodejs)
出于测试目的,我创建了一个 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' 时,我看到 'server is running'
我设置了一个防火墙规则来接受 tcp=8000(IP 范围 0.0.0.0/0)上的所有传入流量
我有防火墙规则 default-allow-http (tcp: 80) 和 default-allow-https (tcp: 443)
我有一个静态IP地址
有什么我遗漏的吗?
编辑:
当我通过浏览器访问服务器(带:8000)时,页面一直在加载。但是消息 'browser access' 没有发送到控制台。假设 30 秒后,我在浏览器中得到一个 ERR_CONNECTION_TIME_OUT。
Express 版本是 4.17.1。我也把'express'改成了'app'.
当我打开终端 window 并执行 'curl EXTERNAL_IP_ADDRESS:8000' 时,没有任何反应。好像一直在加载。
我把listen(8000)改成了listen(8000, '0.0.0.0')。没有观察到差异。
问题已解决:
我成功了。我在虚拟机上安装了 ufw 并打开了端口 8000。这就是我的解决方案。
解法:
我不仅需要向我的 VPC 添加防火墙规则(0.0.0./0 tcp:8000,传入),我还需要在我的 VM 本身上打开端口 8000。我安装了 ufw 并打开了端口 8000。它现在可以工作了。
出于测试目的,我创建了一个 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' 时,我看到 'server is running'
我设置了一个防火墙规则来接受 tcp=8000(IP 范围 0.0.0.0/0)上的所有传入流量
我有防火墙规则 default-allow-http (tcp: 80) 和 default-allow-https (tcp: 443)
我有一个静态IP地址
有什么我遗漏的吗?
编辑:
当我通过浏览器访问服务器(带:8000)时,页面一直在加载。但是消息 'browser access' 没有发送到控制台。假设 30 秒后,我在浏览器中得到一个 ERR_CONNECTION_TIME_OUT。
Express 版本是 4.17.1。我也把'express'改成了'app'.
当我打开终端 window 并执行 'curl EXTERNAL_IP_ADDRESS:8000' 时,没有任何反应。好像一直在加载。
我把listen(8000)改成了listen(8000, '0.0.0.0')。没有观察到差异。
问题已解决:
我成功了。我在虚拟机上安装了 ufw 并打开了端口 8000。这就是我的解决方案。
解法:
我不仅需要向我的 VPC 添加防火墙规则(0.0.0./0 tcp:8000,传入),我还需要在我的 VM 本身上打开端口 8000。我安装了 ufw 并打开了端口 8000。它现在可以工作了。