kbu*_*lds 71 ssh networking port-forwarding
很简单,我知道这以前发生在我身上。在 AU 上找不到好的答案。
我正在运行一个绑定端口的 ssh 会话:
ssh -L 3000:<server_name>:22
Run Code Online (Sandbox Code Playgroud)
我刚刚失去了连接。当我尝试使用相同的命令重新连接时,出现以下错误:
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3000
Run Code Online (Sandbox Code Playgroud)
如何在我的机器上重置 ssh 以允许再次绑定端口?重置本地机器有效。
use*_*407 97
你不能杀死任何使用该端口的东西吗?
lsof -ti:5901 | xargs kill -9
Run Code Online (Sandbox Code Playgroud)
lsof -ti:5901
找到任何使用 port 的东西5901
。
将整个事情传递kill -9
给杀死任何使用 port 的东西5901
。
替换为您要再次打开的端口。
Rma*_*ano 13
我想你还有一些东西连接到本地端口 3000。
你可以找到它
netstat -tulpn | grep 3000
Run Code Online (Sandbox Code Playgroud)
然后处理掉它。例如在我的机器中:
[:~] % 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
Run Code Online (Sandbox Code Playgroud)
正确识别在端口 5900(vnc 服务器)上等待和连接的进程。
另一个有用的命令是
fuser 3000/tcp
Run Code Online (Sandbox Code Playgroud)
...sudo
如果您不拥有打开端口的进程,则可能需要运行所有这些。
我能够通过执行以下操作来重新创建和修复它:
ps -ae
)sh
( kill <proc_number>
)的进程然后重新打开ssh连接
或者,我在以下方面取得了成功:
killall ssh
Run Code Online (Sandbox Code Playgroud)
在本地机器上的终端中