Мне нужно получить доступ к базе данных MySQL на удаленном сервере в моей лаборатории. Сервер доступен только после входа на сервер шлюза в удаленной сети:
local server => gateway server => MySQL server.
Я могу использовать ssh для шлюза, используя порт 24222.
Я использую модуль PERL DBI. Это то, что я использую для подключения, когда я нахожусь в лаборатории:
my $host="1.2.3.4";
my $database="dbname";
my $user="user";
my $pw="pass";
my $table="table";
Я предполагаю, что мне нужно настроить туннель через сервер шлюза на сервер базы данных. Как мне это сделать? Если база данных MySQL была на шлюзе, я мог бы открыть туннель следующим образом:
$ ssh -f [email protected] -L 3307:127.0.0.1:3306 -N
Как я могу изменить это для туннеля через открытый порт 24222 на шлюзе через сервер MySQL на 1.2.3.4?
UPDATE:
Используя ответ @anttir, я получил его для работы следующим образом.
-
Настройте туннель:
$ ssh -fN -p 24222 [email protected] -L 3307:1.2.3.4:3306
-
Настройте переменные script:
my $host="127.0.0.1"; my $port = 3307;