Назад | Перейти на главную страницу

Доступ к экземпляру MySQL через несколько туннелей

У меня есть экземпляр MySQL, работающий на сервере, к которому я не могу подключиться напрямую, а только через другой сервер, поэтому мне нужно добраться до него следующим образом:

[local] --> [server1] --> [server2]

Какую команду мне следует использовать для этого? Пробовала вроде все но вроде остановилась на первом ..

Это одна из команд, которые я пробовал:

ssh -N -p 22 -c 3des myUser@1.1.1.1 -L 3306/1.1.1.1/3310 -R 3310/2.2.2.2/3306

1.1.1.1 -> server1

2.2.2.2 -> server2

заранее спасибо

Если ваш MySQL работает на server2, можешь попробовать:

ssh -L 3306:2.2.2.2:3306 1.1.1.1

Это создаст туннель между вашим локальным портом 3306 и server2 порт 3306.

Затем вы подключаетесь к localhost в вашем клиенте MySQL.

Давайте разберемся

-N

Я предполагаю, что вы не хотите выполнять удаленную команду, иначе вы могли бы сделать

ssh -t myUser@1.1.1.1 "ssh myUser@2.2.2.2"

затем -p 22 -c 3des Порт и явный выбор шифра

Локальная привязка -L 3306/1.1.1.1/3310 что переводится как local-port:remote-host:remote-port

До этого момента вы подключаетесь как myUser@1.1.1.1 и привязка порта 3306 на вашем компьютере к 3310 в 1.1.1.1.

-R делает полную противоположность -L. Вы привязываете порт удаленно, поэтому при подключении к этому удаленному порту хоста вы подключаетесь локально.

Есть как минимум два способа сделать это. Либо ssh -f -N myUser@1.1.1.1 -L 3306:2.2.2.2:3310 а потом ssh myUser@localhost -p 3306 или проверить ssh_config и добавьте что-то вроде этого

Host 1.1.1.1
    HostName 1.1.1.1
    User myUser
    LocalForward 3306 127.0.0.1:3310