Это один из комментариев к статье Как работает SSH и туннели от leonid.

Вопрос. Я пытался сделать туннель, как описано в статье. Он работает. Но на определенном этапе ssh соединение разрывается и туннель перестает работать. Думаю настройками ssh клиента или демона это можно побороть. Сколько на практике (по времени) может держаться такой туннель?

leonid получил(а) ответ:

Как работает SSH и туннели
В вашем случае время жизни туннеля зависит от сети, от провайдера, скорей всего. На практике, туннели между разными хостами, тем более через интернет не живут долго. Это связано с настройками сети, полагаю. Что касается самого SSH — то в нем и по умолчанию все выставлено хорошо. Допустим, у меня есть туннель, который завернут внутри самого хоста, через локальную петлю. Так он живет месяцами. Вот, сейчас посмотрел, работает с 31 мая этого года:
Срок жизни SSH туннеля
А до мая он тоже жил полгода.
Можете убедиться в этом самостоятельно, завернув у себя какой нибудь туннель внутри хоста.
Так что на практике — только выдумывать костыли, которые будут переподнимать туннель при разрыве. Таких тоже в свое время понаписал достаточно, но иначе как костылями это не назовешь :)


leonid писал(а) также:

Как работает SSH и туннели
Про правила — трансляцию без инструмента типа iptables не сделать. Т.е. смотря на определенные этими инструментами правила можно убедиться, что трансляции нет. Действительно статься отличная, но меня она отчасти сбила с толку, т.к. пару недель назад я использовал ее, чтобы разобраться с тем как устроены vpn и пр, и ее содержимое в части трансляции не билось с другими источниками. что ввело меня в легкий ступор на определенном этапе.


Как работает SSH и туннели
Сомневаюсь что происходит трансляция адресов. Думаю, что все работает сильно проще. А именно ssh устанавливает tcp соединение между двумя компами по каким-то своим портам, затем оно становится сервером в отношении одного из портов (в который надо писать), когда кто-то пишет в этот порт, ssh эту информацию отправляет по tcp соединению на другой комп, и ssh на этом другом компе открывает tcp соединение в с исходящим адресом и пишет в него полученную инфу.








для трансляции нужно добавлять правила трансляции, менять статус ip forwarding и пр. ssh этого не делает (достаточно посмотреть правила iptables во время работы ssh туннеля)