基于 DHT 网络的开源磁力资源搜索引擎:架构解析与部署指南

本项目是一个完整的开源 DHT(分布式哈希表)资源采集、存储与检索系统。它能够自动爬取 DHT 网络中的海量磁力链接,提供关键词搜索、热度排行、资源分类及管理后台等功能,适合开发者自建私有资源搜索引擎或学习 P2P 网络技术。

项目背景

DHT 网络是 BT 下载的核心基础设施,每天承载着巨大的数据流量。本系统旨在构建一套高效的自动化流程,从发现、索引到展示 DHT 网络中的磁力链接,帮助用户快速检索所需资源。

系统架构

  • 爬虫核心:Bitmagnet(运行于 Docker 容器)
  • 数据存储:PostgreSQL 存储原始数据,SQLite 用于前端快速展示
  • 后端服务:Python Flask 框架,集成 AES 加密响应机制
  • 前端界面:纯 HTML/CSS/JS 实现,无重型框架依赖
  • 反向代理:Nginx
  • 同步机制:每 5 分钟自动执行增量数据同步

核心功能

前台搜索

  • 支持关键词模糊搜索磁力链接
  • 多维度排序:按做种数(热度)或发现时间(最新)
  • 精细分类:电影、剧集、动漫、游戏、音乐、软件等
  • 实用工具:批量复制磁力链接、搜索历史记录

管理后台

  • 资源管理:查看、搜索、批量删除及分类迁移
  • 内容风控:违禁词管理与敏感资源自动过滤
  • 权限控制:邀请码机制,限制特殊分类的访问权限
  • 站点配置:自定义站点名称、管理员密码及一键清理违规资源

技术亮点与安全特性

  • AES 加密传输:API 返回数据经过加密,前端解密渲染,有效防止中间人攻击和数据截获。
  • 高效增量同步:定时任务每 5 分钟同步新数据,确保资源库的实时性。
  • 存储优化:Bitmagnet 配置 save_files: false,仅索引元数据,节省约 70% 硬盘空间。
  • 灵活的访问控制:内置邀请码系统,可为特定资源分类生成访问凭证。
  • 智能黑名单:支持自定义违禁词库,自动过滤或隔离敏感资源。

部署要求

  • CPU:2 核及以上
  • 内存:4GB 及以上
  • 硬盘:建议 100GB+(最低 40GB)
  • 操作系统:Debian 或 Ubuntu
  • 网络环境:需具备公网 IP(推荐位于美国或香港的服务器以获得更佳节点连接)

数据规模参考

根据实际运行测试,资源增长与存储占用如下:

  • 运行 3 小时:约 17 万条资源,数据库占用约 30MB
  • 运行 1 天:约 50-100 万条资源,数据库占用约 100MB
  • 运行 1 周:约 300-500 万条资源,数据库占用约 500MB
  • 长期运行:可达 1000 万条以上,数据库占用约 2-5GB

部署指南

一键安装

下载安装包并解压后,进入目录执行以下脚本,系统将自动完成所有环境配置:

chmod +x install.sh
./install.sh

手动部署步骤

  1. 安装 Docker 并启动 Bitmagnet 容器。
  2. 安装 Python 依赖库:flask, flask_cors, pycryptodome, requests
  3. 启动 Flask API 服务。
  4. 配置 Nginx 反向代理规则。
  5. 设置 Crontab 定时任务,每 5 分钟执行一次增量同步脚本。

文件结构说明

/www/wwwroot/ci/
├── backend.py           # Flask 后端主程序
├── index.html           # 前台搜索页面
├── admin_login.html     # 后台登录页面
├── admin_panel.html     # 后台管理面板
├── dht.db               # SQLite 数据库文件
├── blacklist.txt        # 违禁词列表
└── admin_config.py      # 后台配置文件

/opt/bitmagnet/
├── docker-compose.yml   # Docker 编排文件
├── config/config.yml    # Bitmagnet 配置文件
└── sync_inc.sh          # 增量同步脚本

常见问题排查 (FAQ)

  • 前端不显示数据?
    检查后端进程是否运行:ps aux | grep backend.py
    查看后端日志:tail -f /www/wwwroot/ci/backend.log
  • 同步脚本未工作?
    尝试手动执行:/opt/bitmagnet/sync_inc.sh
    查看同步日志:tail -f /opt/bitmagnet/sync.log
  • 硬盘空间不足?
    确认 Bitmagnet 配置中已设置 save_files: false
    若仍不足,可修改 sync_inc.sh 中的 LIMIT 参数减少单次同步数量。
  • 如何修改管理员密码?
    登录后台管理系统,进入“设置”页面进行修改。

访问与默认凭证

  • 前台搜索地址http://你的服务器 IP
  • 后台登录地址http://你的服务器 IP/admin_login.html
  • Bitmagnet 管理界面http://你的服务器 IP:3333
  • 默认用户名:admin
  • 默认密码:admin123(务必在首次登录后修改)
  • 特殊分类邀请码:需在后台“邀请码管理”中自行生成

下载与开源协议

本项目遵循 MIT License 开源协议,代码结构清晰,适合二次开发。

下载地址https://luos.lanzoub.com/iLxQj3moyvch

基于 DHT 网络的开源磁力资源搜索引擎:架构解析与部署指南插图
基于 DHT 网络的开源磁力资源搜索引擎:架构解析与部署指南插图1

© 版权声明
THE END
喜欢就支持以下吧
点赞14赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容