Открытие порта для приложения, доступного за пределами 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

Другие вопросы по тегам