Понимание туннели SSH

Если у Вас есть немного пространства резервного диска (это дешево в эти дни, правильно?), Вы могли сделать локальный rsync от своего дерева разработки до второй копии проекта - дерева "подготовки" - на Вашем поле разработки. Затем выполните любые производственные модификации, в которых Вы нуждаетесь на дереве подготовки и делаете "реальный" rsync с дерева подготовки на рабочий сервер.

Можно иметь в наличии дерево подготовки для дополнительной скорости развертывания или удалить его впоследствии к свободному, располагают с интервалами;ваш решать.

Или, Вы могли сохранить дерево подготовки на рабочем сервере вместо этого. В этом случае можно сделать всего один rsync, внести изменения, затем сделать некоторых, быстрый каталог переименовывает так, чтобы дерево подготовки было теперь производственным деревом, и старое производственное дерево является теперь деревом подготовки. Таким образом, у Вас никогда нет частично обновленного сайта в производстве.

15
19.10.2012, 02:34
2 ответа

Я нарисовал несколько набросков

Вызывается машина, на которой набрана команда ssh tunnel (или в вашем случае: Putty с туннелированием) »ваш хост« .

ssh tunnel starting from local


ssh tunnel starting from remote

Введение

  1. local: -L Указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне.

    ssh -L sourcePort: forwardToHost: onPort connectToHost означает: подключиться с помощью ssh к connectToHost и перенаправить все попытки подключения на локальный sourcePort на порт onPort на машине с именем forwardToHost , к которой можно получить доступ с машины connectToHost .

  2. удаленный: -R Указывает, что данный порт на удаленном (серверном) хосте должен быть перенаправлен на данный хост и порт на локальной стороне.

    ssh -R sourcePort: forwardToHost: onPort connectToHost означает: подключиться с помощью ssh к connectToHost и перенаправить все попытки подключения к удаленному удаленному sourcePort порту onPort на машине с именем forwardToHost , к которой можно получить доступ с вашего локального компьютера.

Ваш пример

Первое изображение представляет вашу ситуацию. Синий прямоугольник с именем ваш хост - это ваш компьютер с Windows, с которого вы запускаете Putty на свой сервер Ubuntu, который на моем изображении называется remotehost . Соединения с зеленым портом (в вашем случае номер порта 4000 ) перенаправляются на розовый порт MySQL 3306 localhost вашей серверной машины Ubuntu (т. Е. Сам сервер Ubuntu).

Чтобы настроить его с помощью Putty

Запустите Putty и введите свои обычные настройки подключения (имя хоста или IP-адрес) В дереве слева перейдите к

Подключение → SSH → Туннели

и создайте новый локальный туннель с исходным портом 4000 (123 на изображении) и местом назначения localhost: 3306 (localhost: 456 на изображении).

Не забудьте нажать на Добавить .

Затем вернитесь к сеансу и нажмите Сохранить , чтобы сохранить настройки в следующий раз. Теперь вы можете использовать сохраненное соединение для входа на свой сервер, и после успешного входа каждый раз, когда вы подключаетесь к порту 4000 на вашем хосте, вы фактически подключаетесь к порту 3306 на сервере Ubuntu.

create forward tunnel with putty

20
27.01.2020, 19:49

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

Для установки его откройте диалоговое окно конфигурации Шпаклевки, выберите установку соединения, которое Вы обычно используете для доступа к серверу и щелчку "загрузка" (и не "открытые"). Затем в дереве на левой стороне, перейдите к Соединению-> SSH-> Туннели и создайте новый "локальный" туннель с исходным портом 4000 и целевой "localhost:3306" (потому что адрес назначения разрешен на сервере с точки зрения сервера, порт MySQL находится на localhost). Затем перейдите назад к "сессии" и нажмите "Save" для хранения настроек в следующий раз. Теперь можно использовать сохраненное соединение для входа сервера и после успешного входа в систему, каждый раз, когда Вы соединяетесь с портом 4000 на Вашем компьютере, который Вы на самом деле подключите к порту 3306 на сервере.

Если Вы серьезно в туннели и выполнение клиента MS Windows, то я предлагаю смотреть на менеджера Туннеля Шпаклевки, который использует Шпаклевку, чтобы настроить и выполнить туннели легко, не будучи должен иметь открытую консоль шпаклевки.

16
27.01.2020, 19:49

Теги

Похожие вопросы