не могу получить доступ к виртуальной машине Google Cloud Compute Engine через внешний IP (nodejs) - PullRequest
0 голосов
/ 20 января 2020

В целях тестирования я создал виртуальную машину Google Cloud Compute Engine (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 , ничего не происходит.

  • У меня есть S SH доступ через внешний IP, он работает

  • Я могу пинговать к внешний IP-адрес, это тоже работает

  • При выполнении «приложения узла. js» через терминал (доступ S SH), я вижу «сервер работает»

  • Я установил правило брандмауэра, чтобы принимать все входящие трафики c по tcp = 8000 (диапазон IP-адресов 0.0.0.0/0)

  • У меня есть правила брандмауэра default-allow-http (tcp: 80) и default-allow-https (tcp: 443)

  • У меня есть адрес c IP-адрес

Что-то мне не хватает?

Редактировать:

  • Когда я захожу на сервер (с: 8000 ) через мой браузер страница продолжает загружаться. Но сообщение «Доступ через браузер» не отправляется на консоль. Через 30 секунд я получаю в браузере ERR_CONNECTION_TIME_OUT.

  • Express версия 4.17.1. Я также изменил 'express' на 'app'.

  • Когда я открываю окно терминала и выполняю 'curl EXTERNAL_IP_ADDRESS: 8000', ничего не происходит. Кажется, что он продолжает загружаться.

  • Я изменил прослушивание (8000) на прослушивание (8000, '0.0.0.0'). Никаких различий не наблюдается.

Проблема решена:

Я все заработал. Я установил UFW на ВМ и открыл порт 8000. Это было для меня решением.

1 Ответ

1 голос
/ 20 января 2020

Решение:

Мало того, что мне нужно было добавить правило брандмауэра к моему VP C (0.0.0./0 tcp: 8000, входящий), мне также нужно было открыть порт 8000 на самой моей виртуальной машине. Я установил UFW и открыл порт 8000. Теперь он работает.

...