Я пытаюсь открыть порт на своем VPS (Ubuntu), чтобы поиграть с программированием, связанным с сетью. Я использую UFW и не могу открыть порт 2794 для нелокальных подключений. Я добавил правило «ufw allow from any to any port 2794 proto tcp», но противники не хотят работать по какой-то причине.
Когда я запускаю свой простой сервер для прослушивания на порте 2794 соединений и запускаю nmap (nmap -p 2794 127.0.0.1) При запуске с VPS я получаю следующий вывод:
PORT STATE SERVICE
2794/tcp open unknown
Это показывает, что порт открыт, по крайней мере, для локального подключения. Но когда я запускаю nmap (nmap -p 2794
PORT STATE SERVICE
2794/tcp closed unknown
Кроме того, я успешно запускаю с него сервер Nginx, так как при просмотре IP / сайта в Firefox я вижу контент, то есть порт 80 и 22 открыты для внешних подключений. Любая помощь приветствуется.
Вы уверены, что проблема в брандмауэре? Может быть какая-то другая проблема.
Возможно, ваш простой сервер прослушивает только localhost ( 127.0.0.1
в IPv4 или :: 1
в IPv6). Это объяснило бы ваши результаты Nmap. Вы можете проверить это с помощью ss
. Возьмите себе терминал и выполните ss -ltn | grep 2794
. Если в четвертом столбце (который является столбцом «Локальный адрес: порт») отображается что-то вроде 127.0.0.1:2794
или [:: 1]: 2794
, ваш простой сервер прослушивает только на localhost.
Если это так, у вас есть несколько вариантов. Вы можете использовать прокси-сервер для пересылки трафика из Интернета на ваш простой сервер. Вы можете использовать правило iptables
для пересылки TCP-соединения. Или (и это, вероятно, самый простой вариант) вы можете изменить свой простой сервер, чтобы он прослушивал все интерфейсы. Для этого укажите, что он должен прослушивать 0.0.0.0
(IPv4) или ::
(IPv6).