2016-03-25 17 views
0

私は困惑しています。私たちはしばらく使用してきたpostgres 9.2データベースを持っています。今私たちはネットワークの外部からそれに接続できる必要があります。Postgresqlリモート接続

私たちは外部IPを設定し、Telnet経由でリモートホストからポート5432に接続できることをテストしました。だから、これは、ネットワーク接続が動作していることを証明ファイアウォール、などすべて良いです。

私が使用して接続しよう:
はpsql -h db.host.com -d dbnameは-p 5432 -Uユーザー

私はpsqlを取り戻す:サーバーは接続を閉じました。

私は
のlisten_addresses =「*」はpostgresql.confの

に設定して、pg_hba.confの中で、我々は(単にテストのため)の行を持っていることを確認した


ホストすべてすべて0.0.0.0/0 md5

そして、私はデータベースを再読み込みして、変更が反映されたことを確認しました。
これにより、任意のソースからの接続が許可されます。

DBサーバ上のpsqlバージョンは9.2.14、クライアント側は9.2.13です。

ご意見やご提案はありますか?

+0

あなたはtcp/ip経由でローカルでpostgresサーバに接続できますか?あなたが接続している実際のIPで '0.0.0.0/0'を置き換えてみてください –

+0

はい、私はローカルに接続することができますし、IPも変更しようとしました。ホストが接続していたIPから始めましたが、同じ振る舞いで – tman

答えて

1

私はいくつかのより多くの情報を得るためにいくつかのことをしようとするだろう:

  • テールPostgresはあなたが接続したときにそこに何が起こっているかを確認するために、サーバーにログオンします。

  • psql --versionを実行して、サーバーのバージョンと多かれ少なかれ一致することを確認します。 (ああ、あなたは既にこれをしているのを見ますが、私は後世のためにここに残します)。

これはまだ私にとってネットワークの問題のようです。実行しているtelnetコマンドは何ですか? 「外部IP」は、あなたがAWSにいるように少し聞こえます。 VPCへのリモートアクセスを設定するには、多くの手順が必要です。外から手を伸ばして、実際に働いている他のサービスは開いていますか?

また、ncを使用して5432を聞くことで、Postgresサーバーをシャットダウンしてトラブルシューティングを行うこともできます。その後、telnetに接続し、データを前後に送信できるかどうかを確認します。

+1

Paul、提案していただきありがとうございます。私はstraceをして、バージョンを確認しました。 AWSから接続しようとしていました。 AWSが発行するEC-2 IP範囲からのアクセスのみを許可するのは、ロードバランサで使用していたものです。イリュールを無効にしたとき、すぐに接続することができました。私のEC2インスタンスが使用していた公開IPを確認し、CIDR通知を介して実際にiruleにリストされていたので、それはiruleロジックでなければなりません。 – tman

+0

あなたはそれを並べ替えてうれしい! –