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