基于Komari搓的一个桌面版探针1.0版(目前测试就很多BUG)(注意:我是自用,还有很多坑,只分享一下,后期我不会填坑)

haomi 2026-10-25 17:46 1

KomariDesktop 1.0:把 VPS 监控放到 Windows 桌面角落


平时用 Komari 监控自己的几台 VPS,网页端功能已经很完善了,但每次想看一下服务器状态,都要先打开浏览器。


我更希望在桌面角落随时看一眼:哪台机器掉线了、CPU 和内存用了多少、三网延迟有没有异常,而不是专门打开一个监控页面。


所以折腾了一个 Windows 桌面小挂件,叫 KomariDesktop。目前做到 1.0,基本满足我自己的日常使用需求,分享给有类似习惯的朋友。


这是个人开发的第三方桌面工具,不是 Komari 官方客户端。


当前版本主要按我自己的 Windows 10/11 x64 环境和使用习惯完成。我不保证后续继续维护,不保证其他操作系统可用,也不会承诺提供后续安装、适配、定制或使用支持。有不同需求的话,建议直接 Fork 后自行修改。


项目地址:https://github.com/jianmomo/KomariDesktop


先看效果


、、










KomariDesktop 是一个独立的 Qt 桌面程序,不是动态壁纸,也不是把网页套在窗口里。它的目标很简单:


不占太多桌面空间,不影响正常操作,需要时抬眼就能看到 VPS 状态。


可以放在主屏或副屏角落,也可以切换到普通窗口或始终置顶模式。平时设置好位置后,锁定面板即可长期挂在桌面上。




目前能显示什么


KomariDesktop 直接读取已有 Komari 的只读数据,不需要重新安装 Agent,也不需要修改服务器配置。


目前支持显示:



  • 节点名称、地区、在线、离线和数据过期状态;

  • CPU 和内存使用率;

  • 实时上传、下载速率;

  • 移动、联通、电信三网延迟;

  • 三网丢包率;

  • 接口提供数据时显示流量用量、套餐上限和到期时间;

  • 最后更新时间及网络异常提示。


网络异常时不会把所有节点直接显示成离线,也不会把获取失败的数据伪装成 0。能够保留上一次成功数据时,会明确标记为过期,并显示最后更新时间。


六款界面皮肤


目前做了六款皮肤:



  1. 雾白蜡棕

  2. 石墨键帽

  3. 夜行分段

  4. 冷灰对比

  5. 夜行色块

  6. 暖沙折线


不同皮肤不只是换一套颜色,而是分别使用卡片、分段、横条、色块和趋势线展示监控信息。


皮肤 6 可以绘制三网延迟趋势。曲线使用程序成功取得的真实采样数据,不为了让图表好看而生成虚假波动;采样不足、节点离线或请求失败时,会保留相应的缺口或状态提示。


多节点管理


考虑到有些人的 VPS 数量比较多,程序支持:



  • 多节点自动分页;

  • 自动轮播和轮播间隔设置;

  • 固定指定页面或节点集合;

  • 自定义需要显示的节点;

  • 按名称、CPU、内存或三网延迟排序;

  • 按地区分组;

  • 根据窗口尺寸自动调整布局。


窗口较窄时会优先保留节点名称、在线状态、CPU、内存和速率等重要信息;窗口较宽时可以展示更多节点。固定节点集合后,节点排序变化不会随意替换固定内容。


桌面显示与多屏适配


支持三种窗口图层:























模式 效果
桌面后层 尽量保持在普通应用窗口后面
普通窗口 作为普通桌面窗口使用
始终置顶 显示在其他普通窗口上方

另外支持:



  • 背景透明度调整;

  • 窗口缩放和位置保存;

  • 目标显示器选择;

  • 锁定模式下鼠标穿透;

  • 调整模式下拖动和缩放窗口;

  • 多显示器、负坐标和不同缩放比例下的位置恢复。




【配图 3】调整模式示例。需要改变位置、大小、皮肤或透明度时,进入调整模式操作即可。


这里需要提前说明:所谓“桌面后层”并不是把窗口真正嵌入 Windows 的 WorkerW 壁纸层。Win+D、Explorer 重启、混合 DPI 和复杂多屏热插拔场景,仍然可能受到 Windows Shell 行为影响,因此不承诺和原生动态壁纸完全一致。


资源占用怎么样?


程序使用 Python + PySide6 / Qt Widgets,不使用 Chromium、WebView2 或 QtWebEngine。


它不是几 MB 的原生 C++ 小工具,Python、Qt、字体和桌面合成本身都会占用一定内存。所以这里不把它宣传成“零占用”或“极致轻量”。


下面是一次本机测试记录:



  • Windows 10;

  • 64 位 Python / PySide6 运行环境;

  • 演示模式,约 3 个节点;

  • 刷新间隔 15 秒;

  • 空闲观察 20 秒。



































项目 本次测试参考值
工作集内存(Working Set) 约 129.5 MB
私有内存(Private Memory) 约 76.3 MB
线程数 9
句柄数 约 658
20 秒 CPU 时间增量 约 0.0469 秒
折算单核平均 CPU 占用 约 0.23%

这里的 0.23% 是根据测试期间 CPU 时间计算出的单核平均值,不等于任务管理器某一瞬间显示的整机 CPU 百分比。


这只是一次演示模式的短时间测试,不代表所有电脑、所有节点数量和长期运行结果。启动、TLS 建连、真实数据刷新、窗口缩放、换肤、DPI 缩放和系统合成,都可能造成短暂峰值。


主要做了这些资源优化:



  • 默认每 15 秒批量刷新节点状态,支持调整为 5–300 秒;

  • 同一轮请求共用批量状态数据,不逐个节点重复请求;

  • 节点基础信息短时缓存,减少重复请求;

  • 网络失败时采用退避重试,避免断网后高频请求;

  • 隐藏面板后暂停界面更新和轮播,并降低网络轮询频率;

  • 复用节点卡片和工作线程,减少重复创建控件;

  • 不使用视频壁纸或持续运行的高频装饰动画;

  • 趋势图只保留有限历史采样,避免无限增长。


实时数据发生变化时,界面仍然会正常刷新。优化的重点是减少重复请求、重复布局和不可见控件更新,而不是把数据冻结起来。


怎么使用


Windows 便携版


项目目标系统是 Windows 10/11 x64。便携版解压后不需要单独安装 Python,也不需要管理员权限。



  1. 从 GitHub Releases 下载实际提供的 Windows ZIP 包。

  2. 解压到普通目录。

  3. 双击 run-KomariDesktop.cmd。

  4. 按 Ctrl+Alt+S 打开设置。

  5. 填写自己的 Komari 只读访问地址。

  6. 设置皮肤、显示器、位置、节点和刷新间隔。


发布文件名和版本请以 Releases 页面实际内容为准,不要把截图中的文件名当成固定承诺。


从源码运行


需要 Windows x64 和 Python 3.12:


git clone https://github.com/jianmomo/KomariDesktop.git
cd KomariDesktop

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe main.py

演示模式:


.\.venv\Scripts\python.exe main.py --demo

演示模式不需要连接自己的 VPS 数据,适合先查看界面和快捷键。


默认快捷键







































操作 快捷键
进入 / 退出调整模式 Ctrl+Alt+M
显示 / 隐藏面板 Ctrl+Alt+H
打开设置 Ctrl+Alt+S
上一页 / 下一页 Ctrl+Alt+P / Ctrl+Alt+N
固定第 1–9 页 Ctrl+Alt+1 – Ctrl+Alt+9
取消固定 Ctrl+Alt+0
退出程序 Ctrl+Alt+Q

部分快捷键可以在设置中自定义。调整模式下还可以拖动窗口、缩放尺寸、切换皮肤、调整透明度和翻页。


数据安全和隐私


客户端默认使用 Komari 的游客只读接口,不需要填写:



  • VPS root 密码;

  • SSH 私钥;

  • Komari 管理员 API Key。


软件不会替换现有探针,也不会向服务器安装额外监控组件。


目前的处理方式包括:



  • 不默认展示公网 IP 等敏感信息;

  • 网络失败时保留最后一次成功数据,并标记过期;

  • 本地配置使用 Qt QSettings;

  • 最近的有限状态数据可以缓存,供重启时恢复显示;

  • 趋势图历史采样只保留在当前会话中,不写入磁盘趋势缓存。


需要注意:游客只读不等于数据完全公开无风险。建议只连接自己信任的 Komari 服务,优先使用 HTTPS,也不要在问题反馈、日志或截图中暴露敏感地址和认证信息。


当前限制和维护声明


这个项目是按我自己的使用环境做的 1.0 版本,边界比较明确:



  • 主要面向 Windows 10/11 x64;

  • 不保证 macOS、Linux 或其他系统可以运行;

  • 混合 DPI、多显示器热插拔和部分 Windows Shell 行为仍可能需要手动调整;

  • 没有独立的告警推送系统,通知继续使用 Komari 原有功能;

  • 不支持多用户管理、云同步和团队权限;

  • Komari 接口变化后可能影响兼容性;

  • 资源数据主要是短时间测试参考,不能代表所有机器的长期表现。


更重要的是:


这个项目发布 1.0 后,我不保证继续维护,也不保证跟进 Komari 后续接口变化;不保证其他操作系统可用,也不会提供后续安装、配置、排错、跨平台移植、定制开发或兼容性支持。


可以反馈问题,但不承诺回复、修复或按反馈继续迭代。需要不同功能或不同平台支持,请自行 Fork 后修改。


它的定位不是替代 Komari Web 管理面板,而是提供一个日常使用的桌面状态入口。


最后


这个项目最初只是想解决我自己查看 VPS 状态不方便的问题。现在把它放在副屏角落,平时不用来回切换浏览器,抬眼就能看到节点状态、CPU、内存、速率和三网质量。


如果你也在用 Komari,并且只需要一个简单的 Windows 桌面入口,可以试试看:


GitHub:https://github.com/jianmomo/KomariDesktop


再次说明,这是个人项目分享,不是 Komari 官方客户端;不承诺长期更新、跨平台移植或后续支持。

最新回复 (12)
  • gooxin 10-25 18:01
    1楼

    真的很帅~


    之前是在用安卓手机的版本

  • haomi 楼主 10-25 18:17
    2楼

    @gooxin #1 感谢,我就想搓搓看效果。前几天爆出一堆漏洞,我想着自己搓个用省心 ^-^

  • raingp 10-25 18:20
    3楼

    好看 ^-^ ^-^

  • ssxym0 10-25 19:00
    4楼

    支持手搓

  • haomi 楼主 10-25 19:43
    5楼

    @ssxym0 #4 AI搓的,手搓真的懒得搓,最近沉迷红果 ^-^

  • domingokkk 10-25 19:44
    6楼

    非常优秀的项目

  • cocozboom 10-25 23:25
    7楼

    我是直接给TrafficMonitor写了个Komari的插件,显示在副屏任务栏里,不占位置,足够轻量

  • haomi 楼主 10-25 23:37
    8楼

    @cocozboom #7 那也挺好,每个人的习惯不一样。我这个没准用两天就感觉鸡肋了^-^

  • xpro 10-26 08:00
    9楼

    桌面上看确实比打开浏览器方便,没有实时查看需求,帮顶

  • 龍龍龍 10-26 08:16
    10楼

    界面挺清爽,感谢分享

  • Dell-Vnie 10-26 08:30
    11楼

    faxis!!

  • BillGor 10-26 09:23
    12楼

    酷,不知cf探针有没类似的

* 帖子来源NodeSeek
返回