当前位置: 首页>>技术教程>>正文


networking – ssh -L(错误:绑定:地址已在使用中)

, ,

问题描述

很简单,我知道这以前发生在我身上。在AU上找不到合适的答案。

我正在使用绑定的端口运行ssh会话:

ssh -L 3000:<server_name>:22

我刚失去联系。当我尝试使用同一命令重新连接时,出现以下错误:

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3000

如何在机器上重置ssh以允许再次绑定端口?重置本地计算机工作。

最佳答案

您不能杀死使用该端口的任何设备吗?

 lsof -ti:5901 | xargs kill -9

lsof -ti:5901查找使用端口5901进行的操作。

将整个内容传递给kill -9可以杀死使用端口5901的所有内容。

替换为您要再次打开的端口。

次佳答案

我想您仍然有一些连接到本地端口3000。

你可以找到它

netstat -tulpn | grep 3000 

然后处理它。例如在我的机器上:

[:~] % netstat -tulpn | grep 5900
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      2547/vino-server
tcp6       0      0 :::5900                 :::*                    LISTEN      2547/vino-server

正确识别正在等待并在端口5900(vnc服务器)上连接的进程。

另一个有用的命令是

fuser 3000/tcp 

…如果您不拥有打开端口的进程,则可能都需要与sudo一起运行。

第三种答案

通过执行以下操作,我可以重新创建并修复它:

  • 打开将列出您的进程的内容(ps -ae)

  • 终止名为sh(kill <proc_number>)的进程

然后重新打开ssh连接

另外,我在以下方面也取得了成功:

killall ssh

在本地机器的终端上

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9632.html,未经允许,请勿转载。