port forwarding

ubuntu linux Настроить туннель -- прокинуть порт чтобы подключиться к сервису удалённо через SSH (тунеллирование)

Ситуация

Предположим, что на удалённой машине работает какой-то сервис, к которому можно на той удалённой машине подключиться, скажем на порт 3306, но этот порт не открыт наружу, а потому вы можете со своей машины просто взять и подключиться к этой службе (сервису).

Ошибка при перенаправлении портов channel 3: open failed: connect failed: Connection refused -- Решение

Такая ошибка наблюдалась при попытке подключиться через mySQL клиент (heidiSQL), так как было неправильно настроено туннелирование и пробрасывание портов по ошибке вместо схемы (правильной):

ssh -L lPort:127.0.0.1:rPort ruser@rIPadrees -pRSSHPort

использовалась (неправильно в данном случае):
ssh -L lPort:rIPadrees:rPort ruser@rIPadrees -pRSSHPort

Подключить HeidiSQL к mySQL через туннель (прокидывание портов) - удалённая внешняя машина

Делаем следующее:

  1. Для начала создаём туннель командой в консоли (напр. в линукс)
  2. Затем создаём в HeidiSQL новое соединение, где указываем в качестве адреса подключения всё тот же localhost а в качестве порта -- прокинутый локальный порт ,например 3307 (тот, что тут называется lPort). Также указываем имя пользователя, имя базы и пароль к ней -- всё это для удалённой машины.

.ssh/config IP, проброска портов, имя пользователя, порт (forwarding), путь к приватному RSA ключу --Подробное определение хоста

Пример фрагмента файла ~/.ssh/config (добавьте в этот же файл подобное определение, если вам нужно описать ещё один ssh-хост):

Host myhost
    LocalForward 3307 127.0.0.1:3306
    LocalForward 8080 10.1.1.187:80
    User master
    Hostname 88.222.88.192
    Port 2535
    IdentityFile ~/.ssh/id_rsa_22 
   

где:

Subscribe to RSS - port forwarding