匿名用户

这个人很神秘,什么信息也没有

关闭
比茗
2026-10-25
点 赞
0
热 度
0
评 论
0

Komari 反复报 WSL 离线排查

  1. 首页
  2. 技术
  3. Komari 反复报 WSL 离线排查

现象

Komari 一直推送公司电脑上那台 WSL2 的离线告警,过十几分钟又恢复。可 WSL 已经连续运行 6 天,SSH 也一直能连。

原因

对照面板和 agent 两边的日志:

时间

面板

agent

19:34

75 秒没收到心跳,判定断开

没发现

19:36

超过 180 秒宽限期,发 Offline

没发现

19:49

收到重连,发 Online

报 close 1006,1 秒后重连

agent 要过约 16 分钟才发现连接断了。其他节点同样会心跳超时,但 2 分钟左右就重连上,不触发告警。

这 16 分钟来自内核的 TCP 重传:连接上有数据没被确认时,Linux 默认的 tcp_retries2 = 15 要重传约 924 秒才放弃。agent 每秒都在上报,连接从不空闲,所以 keep-alive 不起作用。WSL 里又开着 mihomo 的 TUN,agent 实际只连到本机的 mihomo,只能等 mihomo 那条出站连接重传超时,才收到断开。

至于为什么最近才收到告警:Komari 1.6.0 把通知渠道改成了插件,升级后几天没配,告警都静默失败了。问题早就存在。

修复

echo 'net.ipv4.tcp_retries2 = 8' | sudo tee /etc/sysctl.d/90-tcp-fast-fail.confsudo sysctl --system

调成 8 后约 100 秒就判定断开,agent 能赶在告警前重连;真断网几分钟,告警照发。这个改动只影响「有数据发出、对方一直不回」的连接,代价是长时间断网恢复后,正在传数据的连接不能接着用。阿里云 ECS 镜像的默认值就是 8。

小结

  • 监控报离线但机器正常时,对照两端的时间线,看是断线本身还是发现断线太慢。

  • 一直有数据在发的长连接,断线后多久报错由 tcp_retries2 决定,默认 15 分钟。

  • 告警「最近才出现」,先确认以前的告警有没有发出去。


用键盘敲击出的不只是字符,更是一段段生活的剪影、一个个心底的梦想。希望我的文字能像一束光,在您阅读的瞬间,照亮某个角落,带来一丝温暖与共鸣。

比茗

站长

不具版权性
不具时效性

文章内容不具时效性。若文章内容有错误之处,请您批评指正。

目录

欢迎来到爱酷语,为您导航全站动态

5 文章数
2 分类数
2 评论数
12标签数
最近评论
darren

darren


Comments.show("技术大佬")

DarrenPeng666

DarrenPeng666


可以的 很厉害

热门文章