Не всегда возможно, да и не всегда необходимо построить полноценный туннель с интерфейсной парой адресов.
Иногда нам просто нужно «перенаправить» очень конкретные порты.
Здесь важно понимать, что туннель может быть организован как изнутри сети, к ресурсам которой вы хотите получить доступ, так и к внешнему SSH-серверу.
Вы также можете создать туннель от хоста в Интернете до пограничного SSH-сервера в сети, чтобы получить доступ к внутренним ресурсам.
Так.
Чтобы.
Мы строим туннель из сети в мир.
$ ssh -f -N -R 2222:10.11.12.13:22 [email protected]теперь ввожу 99.88.77.66 на хосте:
$ ssh -p2222 localhostмы попадем на хост 10.11.12.13. Таким же образом вы можете получить доступ к любому другому ресурсу, например:
$ ssh -f -N -R 2080:10.11.12.14:80 [email protected]Введя 99.88.77.66 на хосте:
$ w3m -dump http://localhost:2080мы получаем дамп веб-ресурса за 10.11.12.14. Мы строим туннель из мира в сеть.
$ ssh -f -N -L 4080:192.168.0.10:80 [email protected]Аналогично введите на своем хосте:
$ w3m -dump http://localhost:4080и получаем доступ к веб-ресурсу узла 192.168.0.10, который находится за хостом 88.77.66.55. Поддержание туннелей на высоте Ни для кого не секрет, что соединение иногда обрывается, и туннели отваливаются из-за таймаута.
Чтобы не утруждать себя дополнительным монотонным вводом команды на подъем тоннеля и контролем этого процесса, мы его автоматизируем.
Смело вступайте: $ кронтаб -е и создайте расписание примерно так:
TUNCMD1='ssh -f -N -R 2222:10.11.12.13:22 [email protected]' TUNCMD2='ssh -f -N -R 2080:10.11.12.14:80 [email protected]' */5 * * * * pgrep -f "$TUNCMD1" &>/dev/null || $TUNCMD1 */5 * * * * pgrep -f "$TUNCMD2" &>/dev/null || $TUNCMD2Давайте сохраним.
Мы проверяем
$ crontab -lчто график принят. Это просто еще один момент особого админского волшебства.
Надеюсь, лишних вопросов не возникнет. Дополнительные параметры ssh можно найти в
$ man 1 sshПрактический опыт показывает, что задания cron для перезапуска абсолютно недостаточно.
Если только соединение не будет абсолютно стабильным.
В реальной жизни это встречается в 0% случаев.
Даже две сетевые карты, соединенные напрямую кабелем, могут запросто потерять n-ное количество пакетов и TCP-соединение «упадет».
Клиент и сервер будут свято уверены, что всё в порядке, другая сторона просто ничего не передает. Требуется поддержка активности.
Как это:
TCPKeepAlive yes ServerAliveInterval 300 ServerAliveCountMax 3Интервал и счетчик – по вкусу.
Их нужно добавить либо в /etc/ssh_config, либо в ~/.
ssh/config, либо непосредственно в команде с помощью опции -o. В принципе, судя по man ssh_config, первый из вариантов можно опустить.
но, на всякий случай, пусть будет так.
Теги: #настройка Linux #ssh-туннель
-
Учебный Институт Thrive Теперь Онлайн!
19 Oct, 24 -
Флори, Пол
19 Oct, 24 -
Домены .Org И .Info Больше Не Стоят Дешево!
19 Oct, 24 -
Google Analytics И Азербайджан
19 Oct, 24