Я хочу открыть соединение с удаленной базой данных MySQL. Эта база данных находится в частной подсети в другой сети, поэтому я не могу напрямую открыть соединение с ней. Удаленный доступ по SSH также полностью отключен на сервере MySQL.
Мой текущий процесс таков:
Я открываю туннель SSH через общедоступный сервер, HOST_1. Из этого туннеля я открываю SSH-соединение с сервером (HOST_2), который находится в той же подсети, что и сервер MySQL (MYSQL_HOST). Используя сеанс SSH, который я открыл в тот момент (на HOST_2), я использую клиент MySQL, чтобы открыть соединение с MYSQL_HOST.
Вот очень грубая грубая диаграмма того, что в настоящее время сделано:
Я хочу использовать MySQL-клиент моего локального компьютера для подключения к 127.0.0.1:3306 и полностью туннелировать соединение от HOST_1 до HOST_2, а затем к MYSQL_HOST, как если бы у меня был сервер MySQL. работает с 127.0.0.1 на первом месте.
Опять же, я не могу открыть SSH-туннель в MYSQL_HOST из HOST_2, поэтому никакого туннелирования оттуда нет. Мне нужно выяснить, как перенаправить клиентское соединение MySQL через туннель SSH на HOST_2, а затем HOST_2 переслать клиентское соединение MySQL на MYSQL_HOST.
Я думал, что мог бы использовать redir
или nc
для достижения этой цели. Я не уверен, как, хотя.
Я прочитал пару вопросов, но не все понимаю достаточно, чтобы собрать информацию, чтобы получить ответ, который я ищу:
- Туннель SSH через несколько переходов
- UDP-трафик через SSH-туннель
- https://unix.stackexchange.com/questions/267090/reroute-mysql-connection-through-external-machine
Я знаю, что на этой странице снова есть информация, которая поможет мне, но я не знаю, как ее использовать: http://sshmenu.sourceforge.net/articles/transparent-mulithop.html
Спасибо!