В целях тестирования я создал виртуальную машину 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. Это было для меня решением.