2011-06-18 14 views
2

私はGranados SSHライブラリを使用していますが、ローカルホストのポート3306をリモートホストのポート3306(つまりMySQLサーバポート)に転送しようとしています。つまり、SSHトンネルを介してリモートホストのMySQLサーバーに接続できるようにしたいと考えています。ここでGranadosを使ってSSHトンネルにポートを転送する方法

は、私は現在、グラナダ.NET SSHライブラリを使用して試したものの一例ですが、動作するようには思えない。

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

誰かが私は私が欲しいものを達成できる方法を教えてくださいすることができ?

答えて

2

あなたの用語は後ろ向きです!あなたがしようとしているのは、トンネルからローカルマシンto遠隔システムです。これは、リモートシステムがTCP サーバであるため、ローカルシステムで接続が開始され、リモートシステムで受け入れられるためです。 ListenForwardedPortの方法は、もう一方の方向です。

私はこれをテストしませんでしたが、Granadosのソースコードを読んでから、代わりにForwardPortメソッドが必要だと思います。これは、このような4つのホスト関連の引数を取ります。

  • remote_host:MySQLサーバ
  • remote_portすなわち、その上にサーバーを持つホスト、:3306
  • originator_hostつまり、サーバーがリッスンしているポートを、:あなたはローカル側で聴きたいホスト、おそらく「localhost」を
  • originator_port:あなたはローカル側に接続したいホストのポート、あなたは3306を再利用するか、他の利用可能な数の
を選ぶことができます

あなたのMySQLサーバーのremote_hostは、(ローカルホスト)(SSH接続のもう一方のエンドポイントに見られるように)かもしれませんが、リモートシステムが到達可能な任意のマシンでもかまいません。また、リモートシステムのIPアドレス、つまりlocalhostまたは127.0.0.1以外のIPアドレスを使用することもできます。

関連する問題