macOS 菜单栏网络延迟监控工具
多主机监控 · Tailscale 集成 · 服务快捷方式 · 实时统计 · 桌面小组件
🚀 Official Site: ping.diswant.space
原生 macOS NavigationSplitView 侧边栏,配合 SF Symbols 图标,快速切换六大模块:监控、统计、网速、追踪、主机管理、服务快捷、历史日志。
- 同时监控多个网络地址,自适应网格布局
- 实时连续 Ping 模式,可配置 3/5/10/30 秒间隔
- 绿(<50ms)/ 橙(<100ms)/ 红(>100ms)三色延迟状态
- 每张主机卡片内嵌 迷你趋势图,一眼掌握近期波动
- 呼吸灯动画状态指示 + 悬浮放大交互效果
- 概览卡片 — 请求数、成功率、丢包率、发送/接收流量、运行时长
- 延迟趋势图 — 实时刷新曲线,支持 Bézier 平滑与区域填充
- 详细指标 — 单主机或全部主机的最小/最大/平均延迟
- 环形统计图 — 全新精致设计的环状统计图表,直观展示请求成功/失败/超时占比与数量
- 排行榜 — 实时对齐网格布局显现延迟最低/最高的主机
- 可选网速显示 — 在系统菜单栏直接显示上行/下行实时网速(支持自动单位计算 KB/s、MB/s)
- 高自由定制 — 支持调整占用总宽度、选择显隐地球图标、并支持 6-18 字号及粗细的完美垂直居中布局
- 网速详情页 — 提供 1s–10s 多档刷新率,自动前置有流量的活跃网卡
- 流量统计与图表 — 全新加入昨日/今日累积流量统计,并配合 30分钟/1小时/24小时/7天 的交互式历史趋势折线图
点击任意主机卡片即可进入详情页:
- 实时图表 — 独立的高刷新率延迟曲线
- 扩展统计 — 抖动值 (Jitter)、标准差
- 丢包分析 — 详细的成功/失败计数与百分比
- 流量监控 — 该主机的实时上传/下载流量统计
- 专项历史日志 — 在详情页中直接展示当前主机的专项操作与 Ping 延迟日志,支持一键导出
.txt到本地目录
- 可视化追踪 — 输入目标地址,直观展示每一跳的 IP、延迟与丢包率
- MTR 模式 — 持续追踪模式,像 MTR 工具一样实时更新每一跳的统计数据
- 地图追踪 — 自动获取当前公网 IP 位置作为起点(Hop 0),在地图上完整绘制从本地到目标的每一跳地理路径
- 快速复制 — 一键复制追踪结果到剪贴板
为每个主机设置延迟阈值规则,满足条件时在状态栏和卡片上显示自定义标签:
<50ms → 直连 # 延迟低于 50ms 显示「直连」
>100ms → 转发 # 延迟高于 100ms 显示「转发」
- 中英切换 — 完整的界面汉化与英文支持
- 动态切换 — 顶部菜单栏一键切换语言,即时生效
- 持久化 — 自动记忆语言偏好设置
- 延迟超过阈值或连接失败时自动推送
- 支持 系统通知 和 Bark 远程推送 两种方式
- 分级日志(Debug / Info / Warning / Error),彩色圆点指示器,快速区分日志级别
- 操作审计日志 — 追踪设置变更(语言、间隔、通知类型)及主机增删改查
- 按级别与主机名筛选功能,支持导出全局日志为文本文件
三款尺寸(小 / 中 / 大),渐变背景设计,实时显示延迟状态:
| 尺寸 | 显示内容 |
|---|---|
| 小 | 延迟数值 + 状态图标 + 主机地址 |
| 中 | 延迟数值 + 主机名 + 运行状态 |
| 大 | 完整面板:图标 + 延迟 + 主机 + 状态 + 更新时间 |
- 自动节点发现 — 自动检测 Tailscale CLI,一键读取私有网络中所有设备
- 智能导入 — 将 Tailscale 节点导入为监控主机,支持单台或批量导入
- 状态面板 — 实时显示 Tailscale 连接状态、本机 IP、网络节点在线情况
- 实时网速监控 — 上传/下载速度追踪,支持按应用/网卡分类(60秒动态折线图)
- 多接口数据统计 — 一键切换全部网卡与单张网卡,显示包量与错误率
- 服务快捷面板 — 统一管理所有主机的 Web/SSH 服务跳转
- SSH 密码与密钥认证 — 支持自定义端口与自动登录模式
- 开机自启动 — 保留数据设置并在应用重启时自动恢复运行状态
- 为每个主机配置多个 Web / SSH / 自定义 服务快捷入口
- 点击即可在浏览器打开 Web 服务或在终端中发起 SSH 连接
- 全局 服务面板 汇总展示所有主机的快捷方式
- 16 种 SF Symbols 图标可选,支持右键删除
- 卡片式设置页 — 全新
ModernCard与ScrollView相结合的卡片分组设计设置面板,逻辑清晰明了 - 智能 Dock 图标 — 主窗口关闭时自动隐藏 Dock 图标,纯净驻留菜单栏
- 状态栏显示策略 — 平均延迟 / 最差主机 / 最快主机 / 首个主机
- 主机预设库 — 内置常用 DNS 和服务器,快速添加
- 自定义 Ping 命令 — 使用
{host}占位符自定义命令 - 开机自启动 — 基于 ServiceManagement 框架
- 菜单栏图标 — 等宽数字字体,运行时实时更新延迟数值
| 组件 | 技术 |
|---|---|
| UI 框架 | SwiftUI 6.0 |
| 最低系统 | macOS 14.0+ |
| 架构模式 | MVVM |
| 数据存储 | File-based Data Sharing (JSON) |
| 小组件 | WidgetKit |
| 自启动 | ServiceManagement |
| 多语言 | Localization (Dynamic) |
| 构建工具 | XcodeGen |
PingMonitor/
├── PingMonitor/
│ ├── PingMonitorApp.swift # 应用入口、数据模型、ViewModel
│ ├── MainView.swift # 主视图与标签页
│ ├── DashboardView.swift # 统计仪表盘(3D 饼图、趋势卡片)
│ ├── SidebarView.swift # 自定义侧边栏导航
│ ├── EditableHostCard.swift # 主机卡片组件
│ ├── Components.swift # 通用 UI 组件
│ ├── Theme.swift # 设计系统(颜色、字体、布局)
│ ├── LanguageManager.swift # 中英多语言管理
│ ├── Info.plist
│ ├── PingMonitor.entitlements
│ └── Assets.xcassets/ # 应用图标
├── PingMonitorWidget/
│ ├── PingMonitorWidget.swift # 桌面小组件(小/中/大)
│ └── Info.plist
├── project.yml # XcodeGen 工程配置
└── build.sh # 自动化打包脚本
- macOS 14.0+
- Xcode 16+
- XcodeGen:
brew install xcodegen
chmod +x build.sh
./build.sh打包输出至 ~/Desktop/PingMonitor-v{version}.dmg,默认自动递增版本号。
如需关闭自动版本递增,编辑 build.sh:
AUTO_VERSION=false- 双击打开 DMG 文件
- 将 PingMonitor 拖入 Applications 文件夹
- 首次打开时允许系统安全提示
- 进入「主机管理」→ 点击「添加」
- 输入名称和地址(IP 或域名)
- 可选:自定义 ping 命令,用
{host}作为地址占位符 - 或从预设库快速添加常用主机
- 切换至「统计」页面
- 顶部概览卡片显示整体数据
- 选择「全部主机」或单个主机查看延迟趋势图和详细指标
进入「设置」→「状态栏显示」,选择延迟显示策略和是否显示规则标签。
点击顶部菜单栏右上角的语言切换按钮(中/EN),界面即时更新。
进入「设置」→「通知」,选择系统通知或填写 Bark URL 进行远程推送。
| 版本 | 构建 | 更新内容 |
|---|---|---|
| v2.1.1 | R6 | 小组件终极修复:严格适配 macOS 沙盒强制规范与本地开发者实体证书深度签名,打通主应用/小组件的双向 App Group 数据通讯,彻底解决了组件画廊找不到应用的问题;性能与UI进阶:默认拉长探测间隔至10秒护航内存与系统负载,全面修复了主机规则编辑器不堪入目的排版错位,监控大盘服务快捷键重构为流式网格完整展示;图表引擎全面换装渐变底色填充色块及阶梯式警示色调(百兆内长绿,100-300橙,三百红) |
| v2.1.1 | R2 | UI 布局深度修复:彻底解决了显示规则编辑器的组件对齐问题,新增「显示文本」固定标签;默认值校正:修复了添加主机时规则列表为空的 Bug,现在默认自动填充(<50ms Direct, >100ms Relay) |
| v2.1.1 | R1 | 交互与功能增强:实现监控主机拖拽排序;新增 Tailscale 快捷命令面板与 Exit Node 状态标识;适配完整的浅色/深色模式设计系统 |
| v2.1.0 | r38 | 网络监控优化:重构 netstat 解析逻辑,支持动态列偏移检测,修复了 VPN/Tailscale 接口下 Errors 计数异常的问题;同步更新官方落地页地址 |
| v2.1.0 | r35 | 项目规范化:建立正式 CHANGELOG.md;升级 build.sh 自动打包变更日志到 DMG;同步所有文档版本号 |
| v2.1.0 | r34 | 文档补全:更新 README.md 版本历史与路由追踪功能描述 |
| v2.1.0 | r33 | 可视化增强:Traceroute 地图新增「当前位置」(Hop 0) 起点显示,支持从本地出发逐级渲染跳点,实现完整的点对点路径追踪 |
| v2.1.0 | r32 | 身份认证与参数修复:采用单次提权的 Bash 容器封装 MTR 循环,彻底消除每秒弹出的 osascript 授权窗口;移除 -n 参数恢复主机名解析能力;校正 Traceroute 返回按钮的靠左边距对齐 |
| v2.1.0 | r31 | UI 修复与状态反馈:修正 EditableHostCard 成功连接逻辑(<50ms 恢复绿色显示);解决 TracerouteView 中返回按钮在特定情况下的显示异常 |
| v2.1.0 | r30 | 核心功能修复:完美解决 Traceroute 需要 Root 权限执行的问题;布局与视觉整齐度提升:状态栏支持缩窄至 50 宽度,设置页所有表单严格左右对齐,日志页时间戳与级别绝对定宽对齐;便捷性增强:监控页顶部常驻快捷访问面板 ServiceShortcutsRibbon;图表美化升级:网速页实时折线图采用 ECharts 风格的平滑贝塞尔曲线及炫光渐变引擎 |
| v2.1.0 | r23 | 状态栏稳定性升级:引入固定宽度与符号左对齐布局,彻底修复网速抖动;并清理了 Git 仓库日志文件 |
| v2.1.0 | r19 | 全新状态栏监控:支持图标开关、多级间距与字体高度定制、网速流量仪表盘全集成;SSH 安全连接:基于 expect 脚本绕过 AppleScript 授权限制直接进行密钥/密码认证;数据聚合:图表升级并修复了网格组件对齐;重构了界面排版引擎 |
| v2.0.55 | r64 | SSH 快捷方式增强:支持配置用户名/端口/密钥路径,实时命令预览;NAT 检测:集成 tailscale netcheck,显示 NAT 类型/UDP/IPv4/IPv6/全局 IP/DERP 区域延迟图表;小组件修复:重构 WidgetDataManager 三级回退策略,禁用小组件沙箱确保数据同步 |
| v2.0.54 | r63 | Tailscale 集成:自动发现私有网络节点并一键导入监控;服务快捷方式:为每个主机配置 Web/SSH/自定义快捷入口,全局服务面板汇总展示;新增侧边栏模块:Tailscale 面板与服务面板;完善中英文本地化 |
| v2.0.53 | r62 | UI 全面优化:统计仪表盘引入极具质感的 3D 立体饼图,并运用严格风格的 Grid 网格布局重置了延迟排行榜;设置页重构:全面采用 ModernCard 与原生列表结合的卡片式分组设计;审计与日志增强:新增针对应用设置修改的操作审计跟踪,并在主机详情页提供了支持一键导出的单主机专项历史日志功能 |
| v2.0.51 | r60 | 小组件深度优化:重构 WidgetDataManager 实现可靠数据同步,修复“无数据”显示;本地化增强:全面支持中英文动态切换,覆盖小组件设置与系统菜单;可视化升级:优化 Dashboard 布局与趋势图平滑度;路由追踪改进:增强 Traceroute/MTR 稳定性 |
| v2.0.40 | r41 | UI 全面升级:3D 环形统计图、实时内存监控、Dashboard 布局优化;本地化完善:补全所有翻译 key、日志级别本地化;侧边栏显示 macOS 用户名 |
| v2.0.34 | r35 | 多语言支持:完整的中文/英文界面,支持动态切换;UI 细节优化与 Bug 修复 |
| v2.0.29 | r30 | 修复自定义命令中空格导致解析错误的问题 |
| v2.0.28 | r29 | 移除 DMG 文件名中的构建号后缀 |
| v2.0.27 | r28 | UI 细节优化:统一主机卡片高度,优化状态栏宽度自适应 |
| v2.0.26 | r27 | 修复 macOS 15.7+ 小组件背景色崩溃问题,完善打包脚本 |
| v2.0.25 | r26 | UI 全面重构:侧边栏导航、Bézier 曲线图表、渐变卡片、迷你趋势图、小组件重新设计 |
| v2.0.24 | r25 | 美化卡片、悬浮效果、延迟图表、应用图标 |
| v2.0.22 | r23 | 响应式网格布局、聚合统计、延迟图表 |
| v2.0.20 | r21 | 连续 ping 模式、数据统计 |
MIT License
- XcodeGen — 项目工程生成工具
- Apple SwiftUI / WidgetKit / ServiceManagement 框架