Как предотвратить зависание autossh время от времени?

10

Я использую autossh для создания обратного туннеля ssh, но время от времени туннель перестает работать, и мне нужно убить autossh и запустить его снова.

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 public.example.com &

autossh, похоже, остается в странном состоянии, когда перенаправленный порт все еще открыт, но вы не получаете ответа с другой стороны. Путем перезапуска autossh это решается.

Как я могу предотвратить эту проблему?

    
задан sorin 15.11.2012 в 09:22
источник

1 ответ

2

Используйте ServerAliveInterval (со значением в секундах), чтобы ssh клиент отправлял нулевой (keepalive) пакет по зашифрованному каналу так часто, чтобы обнаружить сломанное соединение:

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 -o ServerAliveInterval=30 public.example.com &

Вероятно, вы также должны установить соответствующий параметр ClientAliveInterval в /etc/ssh/sshd_config на сервере , чтобы сделать серверы также недоступными клиентскими подключениями:

# Drop dead client connections after 10 minutes of inactivity
ClientAliveInterval 600
    
ответ дан Tyson 08.03.2017 в 13:36