【问题标题】:How to create SSH tunnel using PuTTY in Windows?如何在 Windows 中使用 PuTTY 创建 SSH 隧道?
【发布时间】:2022-01-05 03:07:51
【问题描述】:

我需要在 Windows 中使用 PuTTY 创建 SSH 隧道,这与 Linux 中的此命令相同:

ssh -fN -L 2000:SomeIp:2000 myusername@myLinuxBox

我在 PuTTY 中尝试了许多选项,包括将 GUI 中的源端口设置为“2000”,将目标端口设置为“SomeIp:2000”。目的地设置为本地(正如-L 开关所建议的那样)。

我成功登录到我的 SSH 框,但没有进行端口转发。

这在 Windows 中是否可行,以便使用此端口 (2000) 的程序建立的所有连接都将通过此隧道?

【问题讨论】:

    标签: windows ssh putty ssh-tunnel


    【解决方案1】:

    您可能希望使用plink.exe 而不是 GUI 客户端。命令行语法兼容iirc。

    【讨论】:

    • 我试过 plink ,但似乎端口没有转发。登录远程 sshbox 后如何检查端口是否转发?
    • 我不知道有任何服务器端命令可以查看客户端创建了哪些隧道。也许有服务器故障的人可以帮助你:-)。
    • 关于排查:本地端口转发规则只在本地打开一个监听端口。在您实际尝试连接到本地端口之前,不会创建转发(因此在远程端没有检测到)。
    【解决方案2】:

    或者您也可以浏览 putty GUI,它也允许这样做。请参阅左侧的Connection > SSH > Tunnels 选项树。

    【讨论】:

    • 我已尝试从 GUI 设置许多不同的 optins,但 forward 仍然无法正常工作。登录 sshbox 后如何显示所有转发?
    【解决方案3】:

    使用 PuTTY 套件,您可以使用 PuTTY 本身 (GUI) 或使用命令行工具 plink.exe 设置隧道。


    对于plink.exe,您可以使用与OpenSSH ssh 相同的参数,但-f 除外,它在Windows 中没有等效参数。

    plink.exe -N -L 2000:SomeIp:2000 myusername@myLinuxBox
    

    参考:Using the command-line connection tool Plink


    使用 PuTTY,-L 2000:SomeIp:2000 转换为:

    所以实际上,你声称已经尝试过。如果您有任何问题,请使用 PuTTY 事件日志进行调查:

    -N 转换为选项“根本不启动 shell 或命令”

    但是使用 GUI 客户端启用它可能没有意义,因为无论如何你都会得到一个窗口,你不能用它做任何事情。另请参阅PuTTY wish no-terminal-window


    如果您打算使用隧道将 PuTTY 连接到另一台服务器,您实际上可以使用plink 作为代理将隧道设置为会话设置的一部分,请参阅:PuTTY configuration equivalent to OpenSSH ProxyCommand

    【讨论】:

      【解决方案4】:

      “源”端口是运行 putty 的同一台机器上的端口号(例如,在浏览器中打开:127.0.0.1:source)。 “目标”是您要从本地计算机连接到的远程端口。在我意识到这一点后,它开始起作用了。

      【讨论】:

        【解决方案5】:

        上面的答案提到了解决问题的两种不同方法:

        • 使用 plink
        • 使用 putty GUI

        我没有 plink,也无法下载 plink.exe 文件(这是一个受到严密监控的受限环境),因此使用了一种不同的方式来使用单行脚本编写解决方案:

        start putty -ssh myusername@myLinuxBox -pw my_pw -L 2000:localhost:2000
        

        将其存储在批处理文件中(文件扩展名为“.bat”,例如“tunnel.bat”)。因此,每次双击此文件时,都会运行命令,并且 putty 会创建 ssh 隧道。如果您想要更多隧道,请重复此部分

        -L 2000:localhost:2000

        通过相应地更改端口。

        【讨论】:

        • 好的,但这与 Plink 的作用相同。
        • @MartinPrikryl 当然。但是,我无法安装 plink,因为我没有权限。但我确实有腻子,想编写解决方案的脚本。这就是我的答案。
        • 好的,所以也许在你的回答中提到这一点。 Ntb,Plink 不需要任何安装,直接抓取 .exe 文件即可。
        • @MartinPrikryl 谢谢 - 编辑完成。防火墙阻止了 Exe 下载,所以对我来说,这是编写解决方案脚本的唯一方法。
        猜你喜欢
        • 2012-03-08
        • 2018-01-25
        • 2017-01-02
        • 2011-12-31
        • 2012-03-28
        • 2015-04-28
        • 2016-08-17
        • 1970-01-01
        相关资源
        最近更新 更多