autossh
é uma ferramenta (incluída nos repositórios do Ubuntu) que pode reconectar automaticamente uma sessão SSH. Pode verificar através de um separado se os dados ainda estão sendo transmitidos corretamente e reconectar o túnel:
Aqui está um bom tutorial:
link
Isso pode ser combinado com a ferramenta daemon
, para ser executado em segundo plano.
Solução completa:
aptitude install autossh daemon
Em /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
Os encaminhamentos de porta devem ser adicionados em vez do "...". Na verdade, tudo depois de -M $AUTOSSH_PORT
são parâmetros SSH.
E no início de /etc/rc.local
add
daemon -n autossh /usr/local/bin/tunnel