Чому налаштування HTTP-проксі не виправляє з'єднання PostgreSQL
Відокремте протокол бази даних PostgreSQL від маршрутизації HTTP і перевірте шлях сокета, потрібний для SOCKS.
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 цього не зробить.