Pull to refresh

Comments 27

Ого, спасибо за статью. Честно говоря, в закладках лежит уже несколько статей про SSH туннели, но только ваша позволила мне полностью понять, как они работают :)

Расскажите, пожалуйста: допустим, я хочу развернуть приложение на сервере у себя дома, без статичного IP. SSH-соединения имеют свойство разрываться. Соответственно, туннель тогда тоже перестанет работать. Какие есть хорошие решения этой проблемы?

У ngrok есть проблема, что туннель работает не больше 2 часов.

ниже в комментах предложили ngrok, но я бы поднимал через autossh (писал про это тут https://amorev.ru/autossh/) У меня так несколько туннелей крутится на постоянной основе

Отвечу здесь же, потому что использую похожее решение.

Я использую или systemd unit, который перезапускается при падении туннеля с обычным ssh, не auto, или баш скрипт, который в просто в цикле дергает ssh с нужными параметрами. Но в случае с баш скриптом его надо руками запускать после перезагрузки системы.

интересный способ. Мне хватило autossh для моих задач)

Я не силён в ssh, но, беглый гугл говорит что можно использовать mac адрес устройства

Если некритично время разрыва, можно и в крон команду положить

крон не подойдет. конфликтовать будет. Выше написать про autossh. У меня годами крутятся туннели так)

А у меня годами через крон :)

nc -z 0 12345 || ssh -f -N -L 12345:127.0.0.1:12345 user@server

гениально... Проверяет что порт открыт и, если открыт, то поднимает туннель...

Спасибо огромное за такой крутой пример! Уже придумал как можно это использовать в других местах, где софт запускать надо только если порт открылся!

Рад, что Вам понравилось :)))

Ещё бывает какая-нибудь астралинукс, где нет autossh

это да. тогда крон решения выходят на сцену)

Не могли бы вы, пожалуйста, дополнить, где вы запускаете эти команды, на ноутбуке или на удаленном сервере?

А то что-то к концу чтения все потихоньку смешалось. Так и не понял, почему для примера с кафе нельзя использовать прямой туннель только поменять местами параметры..

И по-моему в примере с обратным туннелем опечатка в номере порта.

Запускаю все со своего компа/ноутбука. На сервере только настройку демона сделал, чтобы принимал соединения из вне.

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

Использую обратный SSH тоннель для доступа в домашнюю сеть без белого IP.
Домашний сервер держит подключение к внешнему, на бесплатном хостинге.
Ну и дублируется с помощью Tailscale, на случай если всё упало.

да! я таким же образом себе внешний доступ к некоторым сервисам делаю

У меня тоже ssh для доступа в локалку, только через ddns, сервер далеко, задержка большая, в планах развернуть wg на локальном сервере rdp over ssh показал себя не очень

А можно узнать что за бесплатный хостинг и какое решение в данном случае?

Можно
https://www.oracle.com/cloud/free/
Домашний сервер держит открытый обратный SSH тоннель в облачный (у которого есть белый IP). И тогда можно открыть соединение в облачный и оттуда попасть в домашнюю сеть...

Спасибо за ответ, но не для всех оракл доступен.

Читаю подобные статьи, потому что не запоминается, редко использую. И никогда нет описания как оформить эти команды, да с дополнительными параметрами подключения в .ssh/config. А преимуществ такой записи много, это и сокращение до ssh S3 и склерозник на будущее. Забыл - заглянул в config. Если эту тему прокачали, и часто используете, может допишете? Полезная же, и никак не освещённая.

Регулярно пользуюсь config. Даже пытался написать bash-completion на базе .ssh/config но не удалось:)

Sign up to leave a comment.

Articles