Как предотвратить случайное зависание autossh?

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

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

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

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

1 ответ

Использовать 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
Другие вопросы по тегам