You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在运行systemd的系统中autossh是否冗余?创建持久反向SSH隧道时是否有用?

在systemd系统中用autossh做持久反向SSH隧道,有用吗?

咱直接说结论:有用,但得看你怎么配置它

先聊聊你提到的autossh -M 0的情况:

  • 当把监控端口设为0时,autossh确实会关闭自带的链路监控功能,这时候它的角色就像一个简单的"看门狗"——只有当SSH进程意外退出时,它才会自动重启SSH,重新建立隧道。
  • 这种模式下,它的价值在于帮你省了自己写复杂监控逻辑的功夫。虽然systemd本身也有Restart=always这类配置能实现进程退出就重启,但autossh是专门为SSH隧道场景设计的工具,用它来封装重启逻辑,有时候比手动调整systemd服务文件更省心。

不过这里得提一下新版OpenSSH的替代方案:

  • 新版OpenSSH自带了ServerAliveIntervalServerAliveCountMax这两个参数,能让SSH本身主动检测连接状态。比如你可以在SSH配置文件(或者命令行参数里)加上:
    ServerAliveInterval 30
    ServerAliveCountMax 3
    
    意思是每隔30秒给服务器发一个存活探测包,如果连续3次没收到回应,SSH就会主动退出。这时候不管是用autossh -M 0,还是直接让systemd监控SSH进程并重启,都能保证隧道持续运行。

那到底选autossh还是纯systemd?

  • 如果你已经习惯了autossh的用法,或者需要兼容一些老系统,那autossh -M 0配合systemd服务是个很稳妥的选择。
  • 如果你更倾向于用系统原生工具,那直接配置SSH的存活参数+systemd的Restart=always,也能达到一样的持久化效果。

内容的提问来源于stack exchange,提问作者Guy

火山引擎 最新活动