![如何撤消 ssh 端口转发命令](https://linux22.com/image/1258069/%E5%A6%82%E4%BD%95%E6%92%A4%E6%B6%88%20ssh%20%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%91%BD%E4%BB%A4.png)
我半偶然地在我的 MacOS 终端上运行了这个命令:ssh -L 9090:localhost:9090 174.143.140.9
我的命令提示符现在是“localhost:~ pbreit$”,我很确定它与以前的命令提示符(“localhost”部分)不同。
我该如何“撤销”此操作?或者我需要这么做吗?我的系统似乎运行良好,但我有点紧张。
答案1
只要您看到该提示,就说明您已连接到该远程系统。您看到的是来自远程服务器的提示,与使用端口转发无关。
键入exit
断开连接,然后运行相同的命令,无需等待,即可-L 9090:localhost:9090
看到完全相同的提示符(因此:与端口转发无关)。同样,运行后exit
或打开另一个终端窗口时,您将看到本地 Mac 的提示符,正如您所知道的那样。
(到仅有的进行端口转发而不显示提示,你可以使用ssh -N -L ...
,然后使用 Ctrl-C 断开连接。)
答案2
退出 ssh 将断开隧道。如果没有连接通过它,则可以通过退出远程 shell 来完成此操作。
答案3
据我所知,目前除了退出连接之外,没有其他选项可以取消本地端口转发。可以使用以下语法取消反向端口转发(从远程计算机返回):
<RET><RET>~c (press return twice and ~c to get the ssh command prompt)
-KR 9090:localhost:9090
这将取消您从远程计算机的端口 9090 转发到本地计算机 localhost:9090 的端口。我尝试执行 -KL 9090:localhost:9090,但它只是说不支持。所以我想最终会实现,但现在还不行。还有一个名为 CancelAllForwardings 的选项,但不幸的是您无法在客户端控制台中使用这些选项。
我在 Ubuntu 上使用 OpenSSH 5.5p1 对此进行了测试,也许较新的版本确实有该选项,但我在 openssh 更新日志中没有看到有关它的任何内容。