當我的 VPN 處於活動狀態時,為什麼無法連接到 PostgreSQL(本地主機伺服器)?

當我的 VPN 處於活動狀態時,為什麼無法連接到 PostgreSQL(本地主機伺服器)?

我只是浪費了一個小時的時間試圖找出為什麼 pgAdminIII 無法連接到localhost.在嘗試編輯設定、啟動/停止 postgresql 服務等之後,我終於意識到自上次使用 pgAdminIII 以來只有一件事發生了變化:我連接到了我的 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提供者:ExpressVPN

答案1

我不是網路嚮導,所以這就是我在這裡問的原因:當我主動連接到我的 VPN 提供者時,為什麼我無法連接到 PostgreSQL (localhost)?

您已將 PostgreSQL 安裝配置為僅允許本機主機連線。

我可以使用哪些命令/步驟來準確說明原因?

修改 pg_hba.conf 以包含您的 ExpressVPN IP 位址條目

託管所有所有 xxx.xxx.xxx.xxx 信任

我不建議您向所有使用 VPN 位址連接到您的伺服器的本機和資料庫使用者授予對您資料庫的存取權。如果您希望發生這種情況,您可以將 變更xxx.xxx.xxx.xxx為您的 ExpressVPN IP 位址,任何使用者都可以連接到您的資料庫伺服器。

相關內容