当前位置: 首页 > news >正文

使用p2p实现Linux内网快速分发文件

安装opentracker

方法一:编译安装

参考如下官方文档进行操作即可,国内下载源码会比较慢
https://erdgeist.org/arts/software/opentracker/
编译完成后会生成可执行文件opentracker和opentracker.debug
可以直接./opentracker.debug进行验证

方法二:使用lednerb/opentracker-docker镜像进行部署

docker部署的方式可以参考
https://github.com/Lednerb/opentracker-docker

这里选择在kubernetes集群上部署

cat > opentracker-ingress-service-deployment.yaml << EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: opentracker-ingress
spec:defaultBackend:service:name: opentracker-serviceport:number: 6969
---
apiVersion: v1
kind: Service
metadata:labels:app: opentracker-servicename: opentracker-service
spec:ports:- name: tcp-6969protocol: TCPport: 6969targetPort: 6969- name: udp-6969protocol: UDPport: 6969targetPort: 6969selector:app: opentracker-pod
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: opentracker-deployname: opentracker-deploy
spec:replicas: 1selector:matchLabels:app: opentracker-podstrategy: {}template:metadata:labels:app: opentracker-podspec:containers:- image: lednerb/opentracker-dockername: opentrackerports:- containerPort: 6969
EOFkubectl apply -f opentracker-ingress-service-deployment.yaml

测试

制作torrent种子

这里使用ctorrent制作种子
假设tracker服务器IP=192.168.122.21

ctorrent -t -u "http://192.168.122.21:6969/announce" -s yourfile.tgz.torrent yourfile.tgz

启动初始上传服务

让制作的种子和文件存在于同一文件夹中,执行如下命令就会自动做种

ctorrent yourfile.tgz.torrent

下载

下载可以使用支持BitTorrent协议的任意客户端,这里使用aria2进行测试
假设把上面的种子文件已经放到了tracker服务器的httpd根目录下

aria2c  http://192.168.122.21/yourfile.tgz.torrent

下载完成后会自动做种一段时间,最后自动退出

参考:
使用BT协议构建软件快速分发系统(可用于Linux内网快速分发文件)
来自 https://blog.csdn.net/Jailman/article/details/86231517

opentracker 搭建自己的 BT Tracker 服务器
来自 https://blog.wudinaonao.com/2020/12/24/opentracker搭建自己的BT-Tracker服务器/

http://www.lryc.cn/news/225036.html

相关文章:

  • Android Studio报错:connect refused
  • ubuntu 源码编译安装make过程很慢问题解决
  • 深度学习 opencv python 实现中国交通标志识别 计算机竞赛
  • 希尔排序原理
  • 测试用例的设计方法(全):判定表驱动分析方法
  • node 第十七天 使用rsa非对称加密 实现前后端加密通信 JSEncrypt和node-rsa
  • Spring-依赖注入findAutowireCandidates源码实现
  • 单页面应用与多页面应用的区别?
  • 模型预处理的ToTensor和Normalize
  • nodejs express multer 保存文件名为中文时乱码,问题解决 originalname
  • 大数据之LibrA数据库系统告警处理(ALM-12035 恢复任务失败后数据状态未知)
  • 汽车生产RFID智能制造设计解决方案与思路
  • 讲解机器学习中的 K-均值聚类算法及其优缺点。
  • 开源DB-GPT实现连接数据库详细步骤
  • java学习part01
  • 渗透测试学习day3
  • 【Proteus仿真】【Arduino单片机】数码管显示
  • 【Bug】Python利用matplotlib绘图无法显示中文解决办法
  • Docsify 顶部的导航是如何配置
  • 最详细的LightGBM参数介绍与深入分析
  • blender动画制作全流程软件
  • mac的可清除空间(时间机器)
  • 【深度学习】可交互讲解图神经网络GNN
  • 网工内推 | 运维工程师,软考认证优先,全额社保
  • 查找或替换excel换行符ctrl+j和word中的换行符^p,^l
  • pytorch_神经网络构建5
  • 安卓常见设计模式5------桥接模式(Kotlin版)
  • tomcat web.xml文件中的session-config
  • Hadoop知识点全面总结
  • MSVCP140_CODECVT_IDS.dll丢失怎么办?推荐三个解决方法帮你解决