4

データのリモート アクセス用に、ubuntu に postgresql 9.1 サーバーをセットアップしようとしています。postgres が正しくインストールされており、サーバー プロセスが実行されており、LAN の外にある他のいくつかのコンピューターからインターネット経由でサーバーにリモート アクセスできるように構成しようとしています。

pg_hba.conf を次のように変更しました。

host    all     all     0.0.0.0     trust

および postgresql.conf には次のように記述します。

listen_addresses = '*'
port = 5432

さらに、ポート 5432 で接続を受け入れるように iptables を変更しました。

Pythonでpsycopg2を使用して接続しようとすると:

conn=psycopg2.connect('host=XX.XX.XX.XX port=5432 dbname=postgres user=myUser password=mypassword')

次のエラーが表示されます。

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async) 
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "XX.XX.XX.XX" and accepting
TCP/IP connections on port 5432?

正しい IP アドレスを挿入したかどうかわかりません。サーバーに接続するためにここで使用する IP アドレスを正確に把握する方法に興味があります。postgres サーバーを実行しているコンピューターのパブリック IP を使用しましたが、それが正しいかどうかはわかりません。それとも、まだ欠けている他のステップがありますか? これが悪いセキュリティ スタイルであることは承知していますが、とりあえず接続を確立したいと思います。また、私のコンピューターはルーターの背後にあるため、サーバーに具体的にどのようにアクセスしますか?

どんな助けでも大歓迎です。

4

1 に答える 1

7

pg_hba.conf使用しないでくださいtrust!!! trustパスワードが必要ないことを意味し、それはあなたが望むものではないと思います。

これは正しい構成です

host    all             all             0.0.0.0/0               md5

/0後ろに注意して0.0.0.0ください。

フルpg_hba.confは次のようになります:-

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
host    all             all             0.0.0.0/0               md5

trust接続にのみ適用されることに注意してくださいlocal127.0.0.1つまり、postgresql サーバーも実行しているマシンのlocalhost IP で実行されているアプリケーションの場合です。

于 2012-11-22T13:53:56.060 に答える