2011-06-18 86 views
2

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

下面是我所使用的格拉纳达.NET SSH文库目前尝试过的例子,但它似乎不工作:

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

有人能告诉我怎样才能达到我想要的?

回答

2

你有你的术语倒退!你正在做的是隧道本地机器远程系统。这是因为远程系统是TCP 服务器,因此连接在本地系统上启动并在远程系统上接受。 ListenForwardedPort方法适用于其他方向。

我没有测试这个,但从我读的Granados源代码中,我认为你想要ForwardPort方法。它需要四个主机相关的参数是这样的:

  • remote_host:该端口的服务器监听,即3306
  • originator_host:与它的服务器,也就是你的MySQL服务器
  • remote_port主机:你要听在本地端的主机,可能是“本地主机”
  • originator_port:要连接到本地端的主机的端口,你可以重新使用3306或选择其他任何可用的数量

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