У нас есть полевой офис, который использует коммутируемое соединение с непубличным IP-адресом, предоставленным провайдером.

Dialin выполняется GNOME-PPP.

Как мы можем держать SSH-соединение (с туннелем) открытым для сервера в Интернете, пока компьютер подключен?

1 ответ1

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 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .