Я пытаюсь построить туннель для подключения к БД Oracle, но туннель открыть нельзя. Ошибка следующая:
ОШИБКА | Проблема при настройке S SH Переадресация вверх: не удалось открыть туннельный локальный узел: 1521 <> XXXXXXXXX: 1521 может использоваться или назначение недоступно.
sshtunnel.HandlerSSHTunnelForwarderError: Произошла ошибка при открытии туннелей.
Мой код установлен так:
self.tunnel = sshtunnel.SSHTunnelForwarder((conn_data['gateway'], int(conn_data['gateway_port'])),
ssh_username=conn_data['username'],
ssh_password=password,
remote_bind_address=(conn_data['remote_bind'],
int(conn_data['remote_port'])),
local_bind_address=(conn_data['local_bind'],
int(conn_data['local_port'])))
Код работает нормально, если я нахожусь в сети компании, в которой я работаю. Но если я подключен через VPN, я получаю вышеуказанную ошибку. Я предполагаю, что VPN построен по тому же туннелю.
Я попытался изменить local_port и удалить локальную привязку, но если я это сделаю, я получу ошибку:
cx_ Oracle .DatabaseError: ORA-12541: TNS: нет прослушивателя
Итак, как я могу динамически настроить порт SSHTunnelForwarder, чтобы он мог обращаться к моей БД через мою уже установленную VPN?
Примечание: изменять конфигурацию VPN или не использовать ее нельзя.