由於動態隨機端口,透過端口連接到遠端伺服器失敗

由於動態隨機端口,透過端口連接到遠端伺服器失敗

我正在嘗試透過 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)或伺服器上某些內容的影響,從有限的資訊中很難猜測這一點。

相關內容