之前我写了篇关于 OmniBox 的文章,可以让你直接在里面看网盘内容。但有个问题是,OmniBox 后台返回的数据没把那些失效的网盘链接过滤掉,搞得有时候打开链接就报错,挺烦人的。最近我发现了一个开源项目叫 PanCheck,正好可以解决这个问题。


🧾 项目简介

PanCheck 是一个专门用来检查网盘链接是不是还能用的系统,它可以帮你批量检查多个主流网盘的分享链接。用它可以很快知道哪些链接失效了,方便你管理和维护网盘里的资源。和 OmniBox 搭配起来用,效果更好。


✨ 项目亮点

🚀 功能

🔍 描述

🔍 支持多平台

能检查 9 种主流网盘的链接

检测快

可以同时检查多个链接,还能设置检查频率和超时时间

📊 数据统计

提供详细的检查统计和数据分析

🔄 定时任务

可以设置定时检查任务,自动检查链接是否有效

💾 数据存储

使用 MySQL 保存检查记录,用 Redis 缓存失效的链接

🎨 界面不错

基于 React + TypeScript 的管理后台,界面挺现代的

🐳 部署简单

提供 Docker Compose 一键部署方案


📦 支持的网盘

夸克网盘

UC网盘

百度网盘

天翼云盘

123网盘

115网盘

阿里云盘

迅雷云盘

中国移动云盘


🐳 部署方法

🎯 Docker Compose

docker-compose.yml

services:
  pancheck:
    image: lampon/pancheck:latest
    container_name: pancheck
    ports:
      - 8180:8080
    environment:
      - SERVER_PORT=8080 # 服务端口
      - SERVER_MODE=release # 服务模式
      - SERVER_CORS_ORIGINS=* # 跨域请求允许的源
      - DATABASE_TYPE=mysql # 数据库类型
      - DATABASE_HOST=db # 数据库地址
      - DATABASE_PORT=3306 # 数据库端口
      - DATABASE_USER=root # 数据库用户名
      - DATABASE_PASSWORD=pancheck # 数据库密码,可以改为自定义密码
      - DATABASE_DATABASE=pancheck # 数据库名称
      - DATABASE_CHARSET=utf8mb4 # 数据库字符集
      - CHECKER_DEFAULT_CONCURRENCY=5 # 默认并发数
      - CHECKER_TIMEOUT=30 # 超时时间(秒)
      - REDIS_ENABLED=true # 是否启用Redis
      - REDIS_HOST=redis # Redis地址
      - REDIS_PORT=6379 # Redis端口
      - REDIS_USERNAME= # Redis用户名
      - REDIS_PASSWORD= # Redis密码
      - REDIS_INVALID_TTL=168   # 失效链接缓存时间(小时)
      - ADMIN_PASSWORD=admin1234 # 后台管理密码,记得修改为自定义密码
    volumes:
      - ./data:/app/data
    restart: on-failure:3
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_started
    networks:
      pancheck_network:
    healthcheck:
      test: [CMD, wget, --no-verbose, --tries=1, --spider, http://localhost:8080/api/v1/health]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
  db:
    image: mysql:8.0
    container_name: pancheck-db
    environment:
      - MYSQL_ROOT_PASSWORD=pancheck
      - MYSQL_DATABASE=pancheck
      - MYSQL_ROOT_HOST=% 
      - MYSQL_CHARACTER_SET_SERVER=utf8mb4
      - MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped
    networks:
      pancheck_network:
    healthcheck:
      test: [CMD, mysqladmin, ping, -h, localhost, -u, root, -p$$MYSQL_ROOT_PASSWORD]
      interval: 10s
      timeout: 5s
      retries: 5
  redis:
    image: redis:latest
    container_name: pancheck-redis
    volumes:
      - redis-data:/data
    restart: unless-stopped
    networks:
      pancheck_network:
    command: redis-server --appendonly yes
    healthcheck:
      test: [CMD, redis-cli, ping]
      interval: 10s
      timeout: 3s
      retries: 3
volumes:
  redis-data:
  mysql_data:
    driver: local
    
networks:
 pancheck_network:
  • DATABASE_DATABASEMYSQL_ROOT_PASSWORD 必须一样,不然用不了。

  • ADMIN_PASSWORD 是管理后台的登录密码,为了安全,记得改一下。


1. 在飞牛主页面找到 Docker,然后点 Compose -> 新增项目

2. 填好项目名称,选个路径,然后把 docker-compose.yml 里的内容复制到来源框里

3. 到 Docker 管理页面,在 容器 菜单里就能看到它是不是跑起来了


📖 使用方法

1. 打开 http://[你的 NAS IP]:8180 就能看到主页面

2. 随便找个网盘分享链接,复制到页面上的文本框里,很快就能看到检查结果

3. 后台管理

1. 在浏览器里打开 http://你的NAS IP:8180/admin/login,然后登录

密码就是环境变量 ADMIN_PASSWORD 里的值,默认是 admin1234

2. 登录之后,可以访问这些功能:

  • 仪表盘 (/admin/dashboard): 查看检查统计和数据

  • 设置 (/admin/settings): 配置检查频率和 Redis 缓存等等

  • 定时任务 (/admin/scheduled-tasks): 创建和管理定时检查任务

PanCheck 还提供了 API 接口,可以用来检测网盘链接 ,有兴趣可以看看官方的详细说明。


📺 整合 OmniBox

1. 在 OmniBox 后台设置 网盘检测

2. 搜索网盘资源

没开 PanCheck 的时候,能搜到 605 个网盘资源,里面包含失效的。

开启 PanCheck 之后,会自动排除失效的资源,只剩下 416 个。


🔧 常见问题

检测结果不准

  1. 检查网络是不是有问题

  2. 有些网盘可能有频率限制,可以试着调整一下检测频率

  3. 看一下后台日志,里面可能有详细的错误信息

管理后台打不开

  1. 确认服务已经启动了

  2. 检查一下防火墙设置

  3. 确认访问地址没错:http://NAS IP:8180/admin/login


🎉 总结

从实际效果来看,启用 PanCheck 之后,OmniBox 的搜索结果会自动过滤掉失效的链接,数量从 605 条减少到 416 条,数量少了,但是更“干净”了。OmniBox 负责“找”和“看”,PanCheck 负责“查”和“稳”——两者结合起来,可以减少无效点击,让观看体验更流畅。