Туннелирование порта через SSH

Часто приходится работать на удаленных UNIX/LINUX хостах. Работать естественно лучше и удобнее всего в консоли, через SSH. Но иногда возникает необходимость, или просто удобнее, работать софтом, установленным на локальном компьютере, причем этот софт должен подсоединятся к локальным сетевым портам на удаленном хосте.

Примеры? Ну например, работаем на виртуальном хостинге, там Apache, MySQL. Хотим подключить визуальный клиент администрирования MySQL. Много есть случаев, когда было бы удобно коннектится на удаленном компьютере к его локальным портам.

Организация туннеля

Давайте попробуем подключить клиент администрирования MySQL на удаленном компьютере.

Естественно считаем, что вход по SSH по ключу уже настроен.

Тогда поднять туннель не просто, а очень просто. На своем локальном компьютере выполняем команду:

ssh -f username@remote_host -L 127.0.0.1:4306:127.0.0.1:3306 -N

Где:

-fГоворит ssh уйти в бэкграунд
usernameИмя пользователя на удаленном компьютере
remote_hostИмя или IP адрес удаленного хоста
-L 127.0.0.1:4306:127.0.0.1:3306Пробросить тоннель с локального порта 4306 на удаленный порт 3306
-NНе выполнять команду на удаленном хосте.

Подключение клиента

Теперь можно подключать клиента. Запускаем mysql-admin и конфигурируем его следующим образом:

Server Hostname:127.0.0.1
Port:4306

Пользователь и пароль - ну ясно, так как у нас сконфигурировано.

Примечание: Мы перенаправили с нашего хоста порт 4306, для того, чтобы в случае, если у нас на локальном хосте тоже работает MySQL, не мешать ему.

Опубликовано: July 16, 2011

Комментарии:


Комментировать:

Имя:

Комментарий: