为什么 ssh -g 说地址已被使用?

Cur*_*urt 7 ssh port-forwarding

我设置了一个带有端口转发的 SSH 连接,允许远程主机像这样连接到本地转发端口:

ssh -g -L 5115:localhost:5115 <server>
Run Code Online (Sandbox Code Playgroud)

即使我收到此错误消息,连接也能正常工作:

绑定:地址已被使用

无论我选择什么端口,我都会收到此消息。我想知道为什么即使连接似乎工作正常,我也会收到此消息。难道我做错了什么?

Ken*_*ter 2

命令:

ssh -g -L 5115:localhost:5115 <server>
Run Code Online (Sandbox Code Playgroud)

会导致本地ssh进程绑定到 0.0.0.0 端口 5115 以侦听要转发的连接。您收到的错误消息表明某些其他进程已绑定到此地址和端口,因此ssh无法执行此操作。

您应该能够通过运行 netstat 来验证这一点:

netstat -an | grep 5115
Run Code Online (Sandbox Code Playgroud)

你可能会看到这样一行:

tcp4       0      0  *.22                   *.*                    LISTEN
Run Code Online (Sandbox Code Playgroud)

“LISTEN”意味着某个东西正在监听连接。“ .22”是地址和端口;0.0.0.0 或“ ”表示“任何接口”。

您在这里的选择是找到正在使用端口 5115 的其他程序并使其停止,或者为您的 ssh 隧道使用不同的本地端口。