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

时间:2011-06-18 06:49:20

标签: c# .net networking ssh portforwarding

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

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

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

有人可以告诉我如何实现我的目标吗?

1 个答案:

答案 0 :(得分:2)

你的术语倒退了!您要做的是将隧道隧道传输到远程系统。这是因为远程系统是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以外的其他名称。