跳转到内容

自动重连与监控

AutoReconnectManager 使用闭包调用连接层,不直接持有 SSH 引擎。默认退避序列为:

3s → 5s → 10s → 20s → 30s

默认最多重连 5 次。网络不可用时,重连任务进入等待集合;网络恢复后重新发起连接,退避从 1 秒初始延迟重新开始。

应用分别记录用户主动断开 SSH 和主动停用隧道。自动重连不会撤销用户决定:

用户操作后续行为
手动断开 SSH不自动重连
手动重新连接清除断开标记,允许后续自动恢复
手动停用隧道不随 SSH 重连自动恢复
SSH 意外断开按退避策略重连
隧道因断开而级联停用SSH 恢复后自动恢复

NetworkMonitor 基于 NWPathMonitor 暴露:

  • status:satisfied、unsatisfied 或 requiresConnection。
  • isExpensive:移动网络或个人热点时为 true。
  • isConstrained:低数据模式时为 true。

这些信息用于决定是否暂停和恢复重连。应用不会把网络错误误判成服务器拒绝连接。

全局 ByteCounter 使用线程安全锁统计所有通道的上下行字节,SpeedMonitor 每秒采样并格式化显示:

B/S · KB/S · MB/S

macOS 菜单栏图标可选择只显示图标,或同时显示上下行速率。连接和隧道菜单项也能展示内联速率。

日志同时写入 Apple 系统日志与独立文本文件,格式为:

[timestamp] [LEVEL] [CATEGORY] message

单文件最多 500 行,使用串行写入队列。设置中的日志查看器会合并内存与文件日志并去重。