如何防止autossh偶尔卡住?


12

我使用的autossh是建立反向ssh隧道,但该隧道有时会停止工作,我需要杀死autossh并重新启动它。

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

autossh似乎保持一种奇怪的状态,即转发的端口仍处于打开状态,但是您没有从另一侧收到任何响应。通过重新启动autossh,可以解决此问题。

如何防止发生此问题?

Answers:


6

使用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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.