У меня есть база данных, запущенная на сервере (назовем ее сервером A) на порту 1522. Я хочу подключить своего клиента к этому серверу A, но порты не открыты. У меня есть ssh-доступ к другому серверу (сервер B), на котором открыто соединение.
Есть ли способ использовать сервер B в качестве прокси-сервера и подключить клиент базы данных с ноутбука к серверу базы данных?
Цель: Mac OS ноутбука === [JDBC] ===> Сервер БД A
Текущий доступ: Mac OS ноутбука === [доступ по ssh] ===> Сервер B === [JDBC] ===> Сервер БД A
Mac: OS 10.14.1
Сервер B: SLES 12 OpenSSH_7.2p2 (полный доступ к серверу)
Сервер A: Oracle DB (только соединение JDBC с сервера B)
Вы можете сделать это довольно легко, проксируя запросы.
Обычно для этого используется SSH - см. https://www.systutorials.com/944/proxy-using-ssh-tunnel/ Это может быть немного сложно, если вы не использовали некоторые из более причудливых функций SSH.
В качестве альтернативы вы можете использовать выделенные прокси-серверы (например, HA Proxy) для производственных систем. При этом вы можете просто сказать «если что-то попадает в порт 1522 на этом устройстве, перенаправьте его на порт 1522 на сервере». Это необработанный TCP-прокси - я уверен, что Oracle будет продавать вам всевозможные причудливые вещи, чтобы они делали то же самое.