如何使用带有C#的Granados通过SSH隧道转发端口

本文关键字:隧道 SSH 转发 通过 Granados 何使用 | 更新日期: 2023-09-27 17:59:32

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

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

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

有人能告诉我怎样才能实现我想要的吗?

如何使用带有C#的Granados通过SSH隧道转发端口

您的术语倒退了!您要做的是从本地机器远程系统的隧道。这是因为远程系统是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以外的地址。