VPN がアクティブなのに PostgreSQL (ローカルホスト サーバー) に接続できないのはなぜですか?

VPN がアクティブなのに PostgreSQL (ローカルホスト サーバー) に接続できないのはなぜですか?

pgAdminIII が のサーバーに接続できない理由を解明しようとして、人生の 1 時間を無駄にしましたlocalhost。構成の編集、postgresql サービスの起動/停止などを試みた後、最後に pgAdminIII を使用したときから 1 つだけ変更があったことにようやく気付きました。VPN に接続していたのです。

私はネットワークの専門家ではないので、ここで質問します。VPN プロバイダーにアクティブに接続しているときに、なぜ PostgreSQL (localhost) に接続できないのでしょうか?

ボーナス:正確に表示するにはどのようなコマンド/手順を使用すればよいですか?なぜ?


編集:

pg_hba.conf:

...
# CAUTION: Configuring the system for local "trust" authentication
# allows any local user to connect as any PostgreSQL user, including
# the database superuser.  If you do not trust all your local users,
# use another authentication method.


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     chris                                trust
#host    replication     chris        127.0.0.1/32            trust
#host    replication     chris        ::1/128                 trust

OS Xバージョン: 10.12.6 (シエラ)

PostgreSQL バージョン: 9.6.3

VPNプロバイダー: エクスプレスVPN

答え1

私はネットワークの専門家ではないので、ここで質問します。VPN プロバイダーにアクティブに接続しているときに、なぜ PostgreSQL (localhost) に接続できないのでしょうか?

PostgreSQL インストールは、localhost 接続のみを許可するように構成されています。

正確な理由を示すには、どのようなコマンド/手順を使用すればよいでしょうか?

pg_hba.conf を変更して、ExpressVPN IP アドレスのエントリを追加します。

ホストすべてxxx.xxx.xxx.xxx信頼

VPN アドレスを使用してサーバーに接続するすべてのローカル ユーザーとデータベース ユーザーにデータベースへのアクセスを許可することはお勧めしません。そのようにしたい場合は、をxxx.xxx.xxx.xxxExpressVPN IP アドレスに変更すると、すべてのユーザーがデータベース サーバーに接続できるようになります。

関連情報