当我的 ssh 隧道在后台时,我该如何停止它?

当我的 ssh 隧道在后台时,我该如何停止它?

我正在使用这个 ssh 命令:

ssh -fnN -L $LOCALPORT:$REMOTEHOST:$REMOTEPORT $HOST

这会在后台创建我的 ssh 连接,并通过另一台主机将该端口转发到远程主机。这很棒,让我可以通过连接到可以访问两个网络的服务器在防火墙后面使用我的服务。

完成后我需要停止这个 ssh 连接,但我不确定该怎么做。

答案1

PID使用命令找到ps并使用该命令向其发送QUIT信号kill

查找PID

ps -o pid,cmd | grep ssh

发送QUIT信号:

kill -QUIT <pid>

答案2

我发现的最佳解决方案是按照以下步骤关闭所有隧道:

ps -o pid,cmd|grep "ssh -L"|grep -v grep|awk '{print $1}'|xargs kill

  1. 获取所有进程的id和命令
  2. ssh -L 过滤器
  3. 获取进程 ID 并终止它

相关内容