У меня есть база данных mysql, доступная только через внутреннюю сеть IP 10.*:3306, и я хочу использовать свою локальную машину, чтобы в конечном итоге настроить phpmyadmin для ее администрирования, но сначала я просто пытаюсь настроить туннель SSH. Я запускаю команду, ssh -N admin@host_b_public_ip -L 3308:host_b_internal_ip:3306
но она просто зависает в моем терминале. Если я открою другой терминал и попытаюсь mysql -P 3308 -u root -p
ввести пароль root mysql host_b, мне будет отказано. Есть ли способ проверить, открыто ли мое соединение? Предполагается ли, что эта команда просто запускается в режиме блокирующего терминала или она не выполняется должным образом? Возможно ли то, что я пытаюсь сделать?
решение1
- Попробуйте
ssh -f -N *etc*
.-f
Заставляет команду SSH работать в фоновом режиме. - Попробуйте
mysql -h 127.0.0.1 -P 3308 *etc*
.-h 127.0.0.1
Говоритmysql
, чтобы попытаться подключиться ксетьсервер на localhost, а не локальный сервер. Из-за правила переадресации портов сетевое соединение затем перенаправляется на удаленный сервер. Если вы не используете флаг-h
, он просто пытается связаться с локальным сервером MySQL и вообще не проходит по сети.