
Я пытаюсь подключиться к суперкомпьютеру через 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
), либо что-то на сервере, о чем трудно догадаться по этой ограниченной информации.