我正在使用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
客户每隔一段时间通过加密通道发送一个空(保持活动)数据包,以检测断开的连接:
/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