op-packages/luci-app-pingpacket
..
jpg
luci-app-pingpacket
README.md

luci-app-pingpacket

luci-app-pingpacket 是一个面向 OpenWrt 的 LuCI 状态监控插件,用于持续观察国内直连质量和国外经代理访问质量,并提供统计、日志和快速排障能力。

界面截图

Ping丢包监控总览
监控总览
Ping丢包监控设置
监控设置
Ping丢包监控运行日志
运行日志

适用平台

  • OpenWrt 24.10.x发布 ipk 安装包
  • OpenWrt 25.12.x发布 apk 安装包
  • 已安装 LuCI Web 管理界面
  • 设备需具备 pingcurlawksedgreptail 等基础命令

当前仓库的 GitHub Actions 工作流默认构建 x86/64 SDK 版本;插件本身为 LuCI 页面和 shell 脚本,原则上也可移植到其他支持 LuCI 的 OpenWrt 架构。

页面位置

后台路径:

状态 -> Ping丢包监控

子页面:

  • 监控
  • 日志

主要功能

监控页

  • 支持分别配置国内目标和国外测速 URL
  • 国内目标通过本机 ping 进行 ICMP 探测
  • 国外目标通过 curl + socks5h 代理进行连续测速,更接近代理实际访问质量
  • 国外测速仅将 HTTP 200/204 视为成功
  • 页面内可直接启用或关闭监控服务
  • 点击“保存并应用”后会保存配置;如果当前已启用监控,服务会自动重启并按新配置重新开始累计统计
  • 当检测到“数据停滞”时,页面会直接显示“重新启动服务”按钮
  • 实时显示开始时间、运行时长、最近更新时间、CPU 占用、内存占用和服务状态

统计卡片

国内和国外分别独立统计以下数据:

  • 平均延迟
  • 最低延迟
  • 最高延迟
  • 丢包率
  • 丢包数
  • 样本数

统计口径说明:

  • 以上数据均为“本次服务启用后的累计统计值”
  • 停止服务、重新启用服务或重启服务后,统计会重新开始
  • 国内和国外分别独立累计,不合并计算

日志页

  • 显示插件运行日志
  • 顶部支持“自动刷新”开关,默认勾选
  • 支持“清除日志”按钮
  • 显示日志最后更新时间、日志行数和日志大小
  • 默认保留最近 500 行日志

当前日志会记录:

  • 服务启动
  • 服务停止
  • 单次丢包事件
  • 恢复事件
  • 国外代理测速失败原因

日志规则:

  • 只要单次探测失败,就立即记录一条日志
  • 连续失败时,每次失败都会单独记录
  • 故障后的首次成功响应会记录恢复日志

当前探测方式

国内

  • 目标类型IP 或域名
  • 探测方式ICMP ping
  • 默认目标:www.baidu.com
  • 默认 Ping 间隔:1

国外

  • 目标类型:域名或完整 URL
  • 探测方式:通过 socks5h 代理发起 curl 请求
  • 默认测速 URLhttps://www.google.com/generate_204
  • 默认代理端口:7891
  • 默认测速间隔:5
  • 代理主机固定为 OpenWrt 本机 127.0.0.1

配置规则

  • 国内和国外目标可以只填其中一个
  • 两个目标都为空时,不能“保存并应用”
  • 两个目标都为空时,也不能通过开关启用服务
  • 若填写国外测速 URL则必须同时填写代理端口
  • 代理端口必须为 1-65535 的数字
  • 外国测速 URL 未填写协议时,系统会自动按 https:// 处理
  • 页面轮询刷新时,不会覆盖用户正在编辑但尚未保存的输入内容

默认配置

安装或补齐配置时,默认值如下:

  • 国内目标:www.baidu.com
  • 国外测速 URLhttps://www.google.com/generate_204
  • 国外代理类型:socks5h
  • 国外代理端口:7891
  • 国内 Ping 间隔:1
  • 国外测速间隔:5

默认 UCI 配置示例:

config pingpacket 'config'
	option enabled '0'
	option domestic_target 'www.baidu.com'
	option foreign_target 'https://www.google.com/generate_204'
	option foreign_proxy_type 'socks5h'
	option foreign_proxy_host '127.0.0.1'
	option foreign_proxy_port '7891'
	option domestic_interval '1'
	option foreign_interval '5'

依赖

  • luci-base
  • luci-lua-runtime
  • luci-compat
  • curl

安装

OpenWrt 24.10.x

上传 ipk 安装包后执行:

opkg install luci-app-pingpacket_v1.0.22_all.ipk

OpenWrt 25.12.x

上传 apk 安装包后执行:

apk add --allow-untrusted ./luci-app-pingpacket_v1.0.22_all.apk

说明:

  • 升级时会尽量保留已有 /etc/config/pingpacket
  • 若系统中存在历史遗留的 /etc/config/pingpacket-opkg,安装脚本会尽量兼容处理