29

会社のネットワークへのゲートウェイでもある「パブリック」サーバーに SSH アクセスできます。ネットワークには別のサーバーがあり、ローカルのOracle データベース サーバーが実行されています (このサーバーの外部からのアクセスはなく、localhost DB 接続のみが受け入れられます)。そしてもちろん、私はこのサーバーに別の SSH アクセスを持っています。

この Oracle Database 11g サーバーにネットワークの外部から参加する方法はありますか? ssh トンネル チェーンのようなものがあるかどうか、およびそれをどのように構成するかを尋ねています。これは、TOAD for Oracle (ORACLE クライアント) などに役立ちます。

編集:ここに画像があります

代替テキスト ありがとう

4

4 に答える 4

40

はい、可能です。たとえば、Linux では、次のように実行します。

ssh -N -Llocalport:dbserver:dbport yourname@connectionserver

どこ

  • localport は、転送されるマシンのポートです (Oracle のローカル インスタンスが実行されていない場合は 1521 になる可能性があります)。
  • dbserver は、データベース サーバーの名前または IP です。
  • dbport はデータベースのポートです (通常は 1521)
  • yourname は接続サーバーへのログインです
  • connectionserver は、ssh アクセスできるマシンです

Plink (Putty に付属) を使用して、Windows でも同じことができます。

plink -N -L localport:dbserver:dbport yourname@connectionserver

これを両方のマシン (ローカル マシンとアクセスできるサーバー) で実行して、ssh トンネルをチェーンします。例:

接続サーバー (Linux を想定):

ssh -N -L1521:dbserver:1521 dblogin@dbserver

あなたのPC:

plink -N -L 1521:connectionserver:1521 connlogin@connectionserver

tnsnames.ora エントリは、ローカル データベースを実行しているように見える必要があります。

prodoverssh =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = prod)
    )
  )
于 2010-09-06T19:20:47.943 に答える
5

ありがとう!

2回電話ssh -N -LXXXX:server:YYYY login@serverしました。

まず、電話した

ssh -L 9998:127.0.0.1:9997 login@gate.company.cz

私のPCで。

次に、このサーバーで (SSH セッション中に)、私は呼び出しました

ssh -L 9997:localhost:1521 root@192.168.105.111

ここで、192.168.105.111 は、ORACLE が実行されていたサーバーです。

だから私がしたことは、リダイレクトに従うことです:

1521 (COMPANY ORACLE SERVER) 
  -> 9997 (COMPANY GATEWAY SERVER)
     -> 9998 (LOCAL PC)

そのため、ローカル PC のポート 9998 で ORACLE にアクセスできました。

于 2010-09-08T11:23:05.677 に答える