由于动态随机端口,通过端口连接到远程服务器失败

由于动态随机端口,通过端口连接到远程服务器失败

我正在尝试通过 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)或服务器上某些东西的影响,从这些有限的信息中很难猜测。

相关内容