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