2011-06-18 87 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以外的地址。