SSHトンネルチェーン(ダブルトンネル、会社ネットワークのサーバー)を介してOracleデータベース11Gサーバーに接続するにはどうすればよいですか?
-
01-10-2019 - |
質問
「パブリック」サーバーへのSSHアクセスがあります。これは、会社ネットワークへのゲートウェイでもあります。ネットワークには別のサーバーがあります ローカル Oracle Database Serverが実行されています(このサーバーの外部からのアクセスはなく、LocalHost DB接続のみが受け入れられます)。そしてもちろん、このサーバーへの別のSSHアクセスがあります。
ネットワークの外側からこのOracleデータベース11Gサーバーに参加する方法はありますか? SSHトンネルチェーンのようなものがあるかどうか、どのように構成するかを尋ねています。これは、たとえば、Oracle(Oracle Client)のToadにとって有用です。
編集: これが画像です
ありがとう
解決
はい、それは可能です。例えば、Linuxで、実行します
ssh -N -Llocalport:dbserver:dbport yourname@connectionserver
どこ
- ローカルポートは、転送されるマシン上のポートです(Oracle Runningのローカルインスタンスがない場合は1521になります)
- dbserverはデータベースサーバーの名前またはIPです
- dbportはデータベースのポートです(通常1521)
- YourNameはConnectionServerのログインです
- 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)
)
)
他のヒント
ありがとう!
私は呼びました ssh -N -LXXXX:server:YYYY login@server
2回。
最初に、電話しました
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)
そこで、ポート9998のローカルPCでOracle Accessを取得しました!
追加することもできます -f
バックグラウンドでSSHコマンドを実行するオプション。