Подключение к серверу на удаленном порту не удается из-за динамического случайного порта

Подключение к серверу на удаленном порту не удается из-за динамического случайного порта

Я пытаюсь подключиться к суперкомпьютеру через SSH и переадресацию портов.

Приложение представляет собой C++-сервер и клиент.

Вот данные порта:

// default values
server_address = "localhost";
port = 12346;

Я подключаюсь к серверу следующим образом:

ssh -Y <adress> -L12346:localhost:12346 -l <username>

(также пробовал)

ssh -Y <adress> -L12346:127.0.0.1:12346 -l <username>

Мое приложение запускается на сервере с таким сообщением журнала:

INFO:  startServer: Port 12346 on server <SERVERNAME> opened and waits client.

До сих пор все было хорошо.

Но когда я пытаюсь подключиться к другому компьютеру, сервер отказывается со следующим логом:

debug1: Connection to port 12346 forwarding to 127.0.0.1 port 12346 requested.
debug1: channel 3: new [direct-tcpip]
channel 3: open failed: connect failed: Connection refused
debug1: channel 3: free: direct-tcpip: listening port 12346 for 127.0.0.1 port 12346, connect from 127.0.0.1 port 45446 to 127.0.0.1 port 12346, nchannels 4

Порт здесь (45446) я не устанавливал, и он динамический, поэтому постоянно меняется.

Приложение (соединение сервер-клиент) работает отлично, когда я запускаю их оба на своем рабочем столе.

Любые рекомендации приветствуются.

решение1

Порт 45446— это порт, на котором работает ваше приложение, и он всегда случайный. Он не должен вас беспокоить.

Что должно вас беспокоить, так это причина, по которой соединение было отклонено в строке выше. Это означает, что ssh пытается подключиться к порту 123456, и соединение не удалось. На это может повлиять либо конфигурация сервера ( PermitOpen), либо что-то на сервере, о чем трудно догадаться по этой ограниченной информации.

Связанный контент