问题描述
很简单,我知道这以前发生在我身上。在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
在本地机器的终端上