我可以使用以下命令转发本地端口
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
除了退出连接并重新开始之外似乎没有其他办法。我很想被证明是错的......