2台のサーバーがあります。サーバー1は、私はアクセスできますがSSHを介してログインできないサーバーのOracleインスタンスにアクセスできます。 SSHポート転送を使用してサーバー2からサーバー1に、そこからOracleインスタンスに接続したいと思います。設定しましたが、GatewayPorts=yes
まだAllowTcpForwarding=yes
何か間違っているような気がします。
この質問の目的に応じて、サーバー2ポート(16951以降)からサーバー1(ポート5432)のpostgresインスタンスに接続することに焦点を当てます。
実行後:
ssh -L 16951:localhost:5432 server1 -nNT -f -g
サーバ 2 で開いているポート検証を"localhost.16951"
実行した後、netstat
ポートが正常にリッスンされていることがわかります。
私が実行したとき:
psql -U jbarton -p 16951
ポートlocalhost:16951がリッスンしていないというメッセージが表示されます。
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.16951"?
どんな意見、回答、提案にも感謝します。
修正する
今oracleを使用しようとしている場合は、次のように接続します。./sqlplus W_USER/password@//localhost:16951/dbname
次のエラーが発生します。ERROR: ORA-12537: TNS:connection closed
私のoracle oraファイルは次のとおりです。
`#tnsnames.ora
PROD2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 16951))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod2)
)
)
そしてsqlnet.ora
'# sqlnet.ora Network Configuration File Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
NAMES.LOG_DIRECTORY = /var/oracle/network/log
答え1
ホスト名を指定しない場合、psqlはドメインソケット接続を想定します。マニュアルページによると:
If you omit the host name, psql will connect via a Unix-domain socket to a server on the local host, or via TCP/IP to localhost on machines that don't have Unix-domain sockets.
-h localhost
psqlコマンドラインに追加してみてください。
Oracleエラーの場合、次の理由が原因であると推測されます(Oracleは診断がより困難です)。
The ORA-12537 error sometimes relates configuration issues in the sqlnet.ora, protocol.ora and listener.ora files. Verify that you service names match between your listener and remote client connect strings.
したがって、localhost
Oracleは接続文字列を拒否します。
修正する
それが地域ならtnsnames.ora
試してみましたかsqlplus W_USER@PROD2
? (必要に応じてパスワードの入力を求められます)。環境変数をTNS_ADMIN
場所に設定する必要があるかもしれませんtnsnames.ora
。