Почему я не могу подключиться к PostgreSQL (локальный сервер), когда мой VPN активен?

1270
Chris Cirefice

Я просто потратил час своей жизни, пытаясь понять, почему pgAdminIII не может подключиться к серверу localhost. Попробовав изменения конфигурации, запустив / остановив службу postgresql и т. Д., Я наконец понял, что с момента последнего использования pgAdminIII изменилось только одно: я был подключен к своему VPN.

Я не сетевой мастер, поэтому я спрашиваю здесь: почему я не могу подключиться к PostgreSQL (localhost), когда я активно подключаюсь к своему провайдеру VPN?

Бонус: какие команды / шаги я могу использовать, чтобы показать, почему именно ?


РЕДАКТИРОВАТЬ :

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 (Sierra)

Версия PostgreSQL : 9.6.3

VPN-провайдер : ExpressVPN

0
Требуется дополнительная информация - включая информацию о подключении - в основном имя хоста (не публиковать пароль), используемое pgAdminIII. Дамп вашего файла pg_hba.conf и подробности об ОС будут полезны. Я подозреваю, что OpenVPN - красная сельдь. davidgo 6 лет назад 0
@davidgo Добавлено. Извините за это, я написал, не задумываясь о конфигурации информации. Все установки Postgres по умолчанию - я ничего не менял. И я использую ExpressVPN, а не OpenVPN. Сервер localhost: `localhost: 5432` (по умолчанию). Chris Cirefice 6 лет назад 0
ExpressVPN - это провайдер, OpenVPN - это программа. ExpressVPN использует OpenVPN. Какую ошибку вы получаете, и понимаете ли вы, что ваш конфигурационный файл postgres позволяет любому подключаться к нему из локальной системы без пароля? Крайне маловероятно, что проблема связана с OpenVPN - но убедитесь, что ваш файл hosts сопоставляет localhost с 127.0.0.1 (или :: 1/128), а не с другим IP-адресом, который недоступен через интерфейс LO. Также проверьте, не нарушает ли программное обеспечение VPN правила вашего брандмауэра, но это маловероятно. davidgo 6 лет назад 0

1 ответ на вопрос

0
Ramhound

Я не сетевой мастер, поэтому я спрашиваю здесь: почему я не могу подключиться к PostgreSQL (localhost), когда я активно подключаюсь к своему провайдеру VPN?

Вы настроили вашу установку PostgreSQL, чтобы разрешить только локальные соединения.

какие команды / шаги я могу использовать, чтобы показать, почему именно?

Измените файл pg_hba.conf, чтобы включить запись для вашего IP-адреса ExpressVPN

хост все все доверие xxx.xxx.xxx.xxx

Я не предлагаю вам предоставлять всем локальным пользователям и пользователям базы данных, которые подключаются к вашему серверу, используя VPN-адрес, доступ к вашей базе данных. Если вы хотите, чтобы это было так, вы бы изменили xxx.xxx.xxx.xxxсвой IP-адрес ExpressVPN, и любой пользователь сможет подключиться к серверу базы данных.