当我的 VPN 处于活动状态时,为什么我无法连接到 PostgreSQL(本地主机服务器)?

当我的 VPN 处于活动状态时,为什么我无法连接到 PostgreSQL(本地主机服务器)?

我刚刚浪费了一个小时的时间试图弄清楚为什么 pgAdminIII 无法连接到服务器上localhost。在尝试配置编辑、启动/停止 postgresql 服务等之后,我终于意识到自上次使用 pgAdminIII 以来只有一件事发生了变化:我连接到了我的 VPN。

我不是网络专家,所以我在这里问:当我主动连接到我的 VPN 提供商时,为什么我无法连接到 PostgreSQL(localhost)?

奖励:我可以使用哪些命令/步骤来准确显示为什么


编辑

配置文件

...
# 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 地址连接到您的服务器的本地用户和数据库用户访问您的数据库。如果您希望这样做,您可以将 IP 地址更改xxx.xxx.xxx.xxx为 ExpressVPN IP 地址,这样任何用户都可以连接到您的数据库服务器。

相关内容