Files
dbx/crates/dbx-core
rarnu 51e62d4c60 SSH 隧道连接优化 (#517)
* 1. 增加 SSH 隧道保活
每 30 秒发一次 keepalive 包,防止 NAT/防火墙丢弃空闲连接。

2. SSH 隧道自动重连
整体逻辑为:
  └─ 初始连接(失败则立即报错,防止 credential 错误时无限重试)
  └─ 绑定 TcpListener(端口不变)
  └─ 启动 tunnel_reconnect_loop
      ├─ forward_loop()  ← 转发数据,检测到 session 断开后退出
      ├─ 睡眠 5 秒
      ├─ connect_and_authenticate() 重连
      ├─ 重连失败?→ 继续等 5 秒 → 重试
      └─ 重连成功 → 回到 forward_loop()

* 修复rust代码风格

* 1:指数退避
延迟序列: 5s → 10s → 20s → 40s → 60s → 60s → ...(封顶 60s)
不再是固定 5 秒重试,避免临时故障时刷屏。

2:最大重试次数
连续失败 10 次后放弃,打一条 fatal 日志 max reconnect attempts exhausted, giving up,然后隧道任务退出。不再无限循环。

3:日志改进
失败日志现在带进度:SSH reconnect failed (host:port, attempt 3/10): error
成功重连日志也带 (attempt N) 方便排查。
2026-05-29 13:31:31 +08:00
..
2026-05-29 13:31:31 +08:00