Kubo IPFS 监控页面使用说明
文件说明
- <code>kubo.php</code> - 单文件监控页面,包含所有功能和样式
功能特色
✅ 实时监控 - 监控本地 Kubo (IPFS) 节点的各种状态 ✅ 漂亮图表 - 使用 Chart.js 展示带宽趋势和存储使用情况 ✅ 自动刷新 - 可开启 10 秒自动刷新功能 ✅ 单文件 - 所有功能集成在一个 PHP 文件中 ✅ 响应式设计 - 支持桌面和移动设备
监控指标
📊 实时统计卡片
- 对等节点 - 当前连接的 IPFS 节点数量
- 固定文件 - 递归固定的文件数量
- 存储对象 - IPFS 仓库中的对象总数
- 存储使用 - 当前存储使用量和总容量
- 下载速度 - 实时下载速度和总下载量
- 上传速度 - 实时上传速度和总上传量
📈 带宽使用趋势图
- 实时显示上传和下载速度曲线
- 最近 20 个时间点的数据
- 自动更新,平滑动画
💾 存储使用情况图
- 饼图显示已用空间和可用空间
- 动态计算剩余容量
🌐 详细节点信息
- 节点 ID - 完整的 PeerID
- 公钥 - 节点公钥信息
- 协议版本 - IPFS 协议版本
- 代理版本 - Kubo 版本信息
- 监听地址 - 节点监听的多地址
- 支持协议 - 节点支持的所有协议
使用要求
环境要求
- PHP 7.0+ (需要 cURL 扩展)
- 本地运行的 Kubo (go-ipfs) 节点
- Web 浏览器 (Chrome, Firefox, Safari, Edge)
Kubo 节点要求
- Kubo 节点必须正在运行 (
ipfs daemon) - API 端口默认可访问 (localhost:5001)
- 如果修改了 API 配置,请更新文件中的端口设置
安装和使用
方法 1: 直接访问
# 确保 Kubo 正在运行
ipfs daemon
# 将 kubo.php 放在 Web 服务器根目录
# 通过浏览器访问:
http://localhost/kubo.php
方法 2: 使用 PHP 内置服务器
# 确保 Kubo 正在运行
ipfs daemon
# 在 kubo.php 所在目录启动 PHP 内置服务器
php -S localhost:8080
# 通过浏览器访问:
http://localhost:8080/kubo.php
方法 3: 命令行快速启动
# 确保 Kubo 正在运行
ipfs daemon
# 使用 PHP 命令行直接打开
php -S 0.0.0.0:8080 kubo.php
# 在浏览器中打开:
open http://localhost:8080
界面操作
🔄 刷新数据
- 点击"刷新数据"按钮手动刷新
- 刷新时显示加载动画
- 成功/失败会有状态提示
⏰ 自动刷新
- 点击开关切换自动刷新模式
- 开启后每 10 秒自动更新一次
- 自动刷新时会实时更新图表
- 支持后台运行,实时展示数据变化
🔧 RPC 地址配置
监控页面支持动态配置 Kubo RPC 地址,可自动保存到浏览器 localStorage:
支持的地址格式:
- 标准 URL 格式:
http://主机:端口/
- 示例:http://100.113.134.128:5001/
- 示例:http://localhost:5001/
- 多地址(Multiaddr)格式:
/ip4/IP地址/tcp/端口
- 示例:/ip4/127.0.0.1/tcp/5001
- 示例:/ip4/192.168.1.100/tcp/5001
- 简写格式:
主机:端口
- 示例:127.0.0.1:5001
- 示例:localhost:5001
使用方法:
- 在"Kubo RPC 配置"部分的文本框中输入地址
- 点击"💾 保存"按钮或按回车键
- 配置会自动保存到浏览器,刷新页面后自动加载
- 配置生效后立即刷新数据显示
提示:
- 所有格式都会被规范化保存为 URL 格式(如:
http://100.113.134.128:5001/) - 配置仅在当前浏览器中保存,不会发送到服务器
- 要切换不同节点,只需修改 RPC 地址并保存
- 如果保存失败,请打开浏览器开发者工具(F12)查看控制台日志
故障排除: 如果保存配置时出现错误:
- 按 F12 打开开发者工具
- 切换到 Console(控制台)标签页
- 查看详细的错误信息和日志
- 根据日志提示检查输入的地址格式
- 如果问题持续,尝试清除配置:
localStorage.removeItem('kuboRpcUrl')然后刷新页面
支持的地址格式:
- 标准 URL 格式:
http://主机:端口/
- ✅ http://100.113.134.128:5001/
- ✅ http://localhost:5001/
- ✅ http://127.0.0.1:5001
- 多地址(Multiaddr)格式:
/ip4/IP地址/tcp/端口
- ✅ /ip4/127.0.0.1/tcp/5001
- ✅ /ip4/192.168.1.100/tcp/5001
- ✅ /ip6/::1/tcp/5001 (IPv6)
- 简写格式:
主机:端口
- ✅ 127.0.0.1:5001
- ✅ localhost:5001
- ✅ 192.168.1.100:5001
📱 响应式布局
- 桌面端:多列网格布局
- 移动端:单列自适应布局
- 图表自动调整大小
配置选项
在 kubo.php 文件顶部可以修改以下配置:
// 配置项
define('KUBO_API_HOST', '127.0.0.1'); // Kubo API 主机地址
define('KUBO_API_PORT', 5001); // Kubo API 端口
define('KUBO_API_TIMEOUT', 5); // API 调用超时时间(秒)
修改 API 地址
如果 Kubo 配置了不同的 API 地址或端口:
define('KUBO_API_HOST', '192.168.1.100'); // 修改为实际地址
define('KUBO_API_PORT', 5001); // 修改为实际端口
故障排除
❌ 无法连接到节点
症状: 页面显示"无法连接到Kubo节点"
解决方案:
- 确保 Kubo 正在运行:
``bash
ipfs daemon
``
- 检查 API 配置:
``bash
ipfs config Addresses.API
``
- 如果修改过配置,更新 kubo.php 中的端口设置
- 检查防火墙设置,确保端口可访问
- 测试 API 是否可用:
``bash
curl http://localhost:5001/api/v0/id
``
⚠️ cURL 扩展未安装
症状: PHP 报错 "Call to undefined function curl_init()"
解决方案:
- 安装 PHP cURL 扩展:
- Ubuntu/Debian: sudo apt-get install php-curl
- CentOS/RHEL: sudo yum install php-curl
- Windows: 取消 php.ini 中 extension=curl 的注释
📊 图表不显示
症状: 图表区域空白
解决方案:
- 确保浏览器可以访问互联网(Chart.js 使用 CDN)
- 检查浏览器控制台是否有错误
- 尝试刷新页面或清除缓存
🔄 自动刷新不工作
症状: 开启自动刷新后数据不更新
解决方案:
- 检查浏览器是否允许 JavaScript
- 查看控制台是否有错误信息
- 手动点击刷新测试 API 连接
- 确保 Kubo 节点运行稳定
安全注意事项
⚠️ 重要提醒:
- 此监控页面仅应在受信任的网络环境中使用
- 不应将 Kubo API 暴露给公共互联网
- 如需远程访问,请使用 SSH 隧道或 VPN
- 不要在生产环境中使用 PHP 内置服务器
技术实现
使用的技术栈
- 后端: PHP + cURL
- 前端: HTML5 + CSS3 + JavaScript
- 图表: Chart.js (CDN)
- API: Kubo RPC API (/api/v0)
API 端点使用
/api/v0/id- 节点身份信息/api/v0/stats/bw- 带宽统计/api/v0/stats/repo- 仓库统计/api/v0/swarm/peers- 对等节点列表/api/v0/bitswap/stat- Bitswap 统计/api/v0/pin/ls?type=recursive- 固定文件列表
数据更新机制
- 初始加载时获取所有数据
- 手动刷新触发完整数据更新
- 自动刷新每 10 秒轮询一次
- 图表保持最近 20 个数据点
浏览器兼容性
✅ 支持的浏览器:
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
⚠️ 注意: Internet Explorer 不支持
更新日志
v1.1.0 (2025-01-09)
- ✨ 新增多地址(Multiaddr)格式支持
- 支持 /ip4/IP地址/tcp/端口 格式(例如:/ip4/127.0.0.1/tcp/5001)
- 支持 /ip6/IPv6地址/tcp/端口 格式
- 支持简写格式 主机:端口(例如:127.0.0.1:5001)
- ✨ 改进 RPC 配置验证和错误提示
- 显示具体错误信息 - 提供更清晰的格式说明
v1.0.0 (2025-01-09)
- 初始版本发布
- 实现基本监控功能
- 添加带宽和存储图表
- 支持自动刷新
- 实现 localStorage 配置持久化
许可证
MIT License - 可以自由使用、修改和分发
贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目!
联系方式
如有问题或建议,请通过 GitHub Issues 反馈。
享受监控你的 Kubo 节点! 🚀