Туннель Always-On-SSH
У нас есть полевой офис, который использует коммутируемое соединение с непубличным IP-адресом, предоставленным провайдером.
Dialin осуществляется GNOME-PPP.
Как мы можем держать SSH-соединение (с туннелем) открытым для сервера в Интернете, пока компьютер подключен?
1 ответ
autossh
это инструмент (включенный в репозитории Ubuntu), который может автоматически переподключаться к сеансу SSH. Он может проверить через отдельный канал, если данные все еще передаются должным образом, и повторно подключить туннель:
Вот хороший How-To:
http://pierre.linux.edu/2010/05/setting-up-a-permanent-ssh-tunnel-between-2-servers/
Это можно сочетать с daemon
инструмент, чтобы работать в фоновом режиме.
Комплексное решение:
aptitude install autossh daemon
В /usr/local/bin/autossh
#!/bin/bash
AUTOSSH_POLL=600
AUTOSSH_PORT=20000
AUTOSSH_GATETIME=30
AUTOSSH_LOGFILE=autossh.log
AUTOSSH_DEBUG=yes
AUTOSSH_PATH=/usr/bin/ssh
HOST=example.com
USER=tunnel
autossh -M $AUTOSSH_PORT -N -L ... -R ... $USER@$HOST
Переадресация портов должна быть добавлена вместо "...". На самом деле все после -M $AUTOSSH_PORT
параметры SSH.
И в начале /etc/rc.local
добавлять
daemon -n autossh /usr/local/bin/tunnel