Открытие порта для приложения, доступного за пределами localhost?
Хотя я исследовал это весь день, я все еще не могу найти решение этой проблемы.
На моем сервере Ubuntu я пытаюсь запустить приложение node.js, которое просто печатает "Hello World" и работает на порте 3000. Я хочу иметь возможность доступа к этому порту не только на моем локальном хосте, но и на моем живом адресе веб-сайта.
Бег sudo netstat -ntlp
Я получаю следующее:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 58639/mysqld
tcp 0 0 0.0.0.0:9418 0.0.0.0:* LISTEN 585/git-daemon
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 839/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 839/dovecot
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 792/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 17862/master
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 889/ajenti-panel -d
tcp 0 0 0.0.0.0:5314 0.0.0.0:* LISTEN 947/BackupFP
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 838/nrpe
tcp6 0 0 :::3300 :::* LISTEN 26390/apache2
tcp6 0 0 :::9418 :::* LISTEN 585/git-daemon
tcp6 0 0 :::110 :::* LISTEN 839/dovecot
tcp6 0 0 :::143 :::* LISTEN 839/dovecot
tcp6 0 0 :::80 :::* LISTEN 26390/apache2
tcp6 0 0 :::22 :::* LISTEN 792/sshd
tcp6 0 0 :::3000 :::* LISTEN 52768/index.js
tcp6 0 0 :::25 :::* LISTEN 17862/master
tcp6 0 0 :::443 :::* LISTEN 26390/apache2
tcp6 0 0 :::5666 :::* LISTEN 838/nrpe
Мы заметили, что порт, кажется, открывается и даже работает
curl exampleAddress.com:3000
результаты в Hello World
но это просто не будет работать через Интернет. Используя этот инструмент проверки порта, кажется, что порт остается закрытым. Имейте в виду, что я просто пытаюсь получить доступ к дополнительному порту на уже запущенном и работающем веб-сайте, который работает на порте 443 (он работает на SSL, это может быть важно).
Я гарантировал, что брандмауэр не является проблемой, запустив: sudo ufw allow 3000
и даже попытался полностью отключить брандмауэр.
Существуют ли какие-либо конфигурации apache, которые мне не хватает, потому что порты 443, 80 и 22 открыты, но я не вижу особых различий.
1 ответ
Я вижу процесс index.js, прослушивающий порт 3000, протокол IPv6 (tcp6), но не прослушивающий протокол IPv4 (tcp).
Вам нужно будет проверить настройки NodeJS и позволить ему прослушивать IPv4.
Затем вы можете проверить это с curl -4 exampleAddress.com:3000