如何从 ssh 控制台取消本地端口转发

如何从 ssh 控制台取消本地端口转发

我可以使用以下命令转发本地端口

ssh> help
Commands:
      -L[bind_address:]port:host:hostport    Request local forward
      -R[bind_address:]port:host:hostport    Request remote forward
      -KR[bind_address:]port                 Cancel remote forward

ssh> -L 8080:localhost:8080
Forwarding port.

但是如何取消端口转发?我看到了 -KR 表示取消远程转发,但似乎没有 -KL 表示取消本地转发。

在同一端口上请求另一个转发(希望覆盖旧转发)会显示此消息

ssh> -L 8080:localhost:8081
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 10101

答案1

在较新版本的 (open)ssh 中,有一个 escape 命令可以取消本地转发:

ssh> help
Commands:
      -L[bind_address:]port:host:hostport    Request local forward
      -R[bind_address:]port:host:hostport    Request remote forward
      -D[bind_address:]port                  Request dynamic forward
      -KL[bind_address:]port                 Cancel local forward
      -KR[bind_address:]port                 Cancel remote forward
      -KD[bind_address:]port                 Cancel dynamic forward

答案2

没有简单的方法可以在命令行上执行此操作。

您可以找到 PID:

$ ps x | grep ssh
 1234 ?        Ss     0:00 ssh -f -N -L 8080:localhost:8080 remotehost

然后终止该进程:

$ kill 1234

答案3

除了退出连接并重新开始之外似乎没有其他办法。我很想被证明是错的......

相关内容