http.proxyHost может маршрутизировать участвующий HTTP-клиент, но ничего не делает для PostgreSQL JDBC. PostgreSQL передаёт протокол своей базы данных, а не HTTP-запрос.

URL подключения JDBC по-прежнему должен указывать сервер базы данных и базу данных. Замена сервера адресом HTTP-прокси не научит драйвер команде CONNECT.

Для службы SOCKS изучите реализацию сокета ниже JDBC. Java предоставляет эти свойства запуска для участвующих сокетов:

-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080

Замените конечную точку из документации. Это аргументы JVM, а не параметры URL JDBC. Проверьте фактический путь сокета JDK/драйвера и любую пользовательскую фабрику сокетов, прежде чем ожидать, что они будут использованы.

Свойства действуют на весь процесс, поэтому включите другие подключения в оценку влияния. Документированный выделенный коннектор или одобренный туннель могут дать более чёткую границу, когда по этому маршруту должен идти только трафик базы данных.

Прокси по-прежнему нужны разрешение и доступность порта базы данных. Затем база данных применяет правила доступа к хосту, TLS назначения и собственный вход. Сохраните имя хоста сертификата и держите учётную запись базы данных отдельно от учётной записи прокси.

Запишите первый неудачный этап: подключение к прокси, согласование, TCP базы данных, TLS или вход в базу данных. Эти данные определяют следующее изменение; многократная настройка неиспользуемых свойств HTTP этого не сделает.

Похожие статьи