
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
)이나 서버의 어떤 요인에 의해 영향을 받을 수 있는데, 이 제한된 정보로는 추측하기 어렵습니다.