【问题标题】:How to forward ports over an SSH tunnel using Granados with C#如何使用带有 C# 的 Granados 通过 SSH 隧道转发端口
【发布时间】:2011-09-17 16:10:02
【问题描述】:

我正在使用 Granados SSH 库,并尝试将本地主机上的端口 3306 转发到远程主机上的端口 3306(即 MySQL 服务器端口)。也就是说,我希望能够通过 SSH 隧道连接到远程主机的 MySQL 服务器。

这是我目前尝试使用 Granada .NET SSH 库但似乎不起作用的示例:

public SSHConnection _conn;
_conn.ListenForwardedPort("localhost", 3306); //doesn't work

有人可以告诉我如何实现我想要的吗?

【问题讨论】:

    标签: c# .net networking ssh portforwarding


    【解决方案1】:

    你的术语倒退了!您正在尝试做的是隧道本地机器远程系统。这是因为远程系统是 TCP 服务器,因此在您的本地系统上启动连接并在远程系统上接受。 ListenForwardedPort 方法是针对另一个方向的。

    我没有对此进行测试,但根据我对 Granados 源代码的阅读,我认为您需要 ForwardPort 方法。它需要四个与主机相关的参数,如下所示:

    • remote_host: 上面有服务器的主机,即你的 MySQL 服务器
    • remote_port:服务器监听的端口,即3306
    • originator_host:你想在本地监听的主机,可能是“localhost”
    • originator_port:本地要连接的主机的端口,可以重复使用3306或者选择其他可用的号码

    您的 MySQL 服务器 remote_host 可能是“localhost”(如 SSH 连接的另一个端点所见),但它也可能是远程系统可访问的任何机器。您还可以使用远程系统的 IP 地址,即 localhost 或 127.0.0.1 以外的地址。

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 2017-02-23
      相关资源
      最近更新 更多