折腾Transmission实现固定IP服务器BT做种教程

news2025/1/15 22:57:03

title: 折腾Transmission实现固定IP服务器BT做种完美

通过网络分享资源,是为了让人下载,但由于种种原因,放到商业网盘的资源经常会被删除,于是我只好自建简易的http文件下载服务,比如frp.v2fy.com

[外链图片转存中…(img-XUIqiXwK-1672121846415)]

内网穿透搭建http文件下载服务教程 https://www.v2fy.com/p/2021-10-01-pi-server-1633066843000/

但http文件下载服务的流量成本是很高的,用户下载的数据都要通过服务器,下载的人一多,下载的速度就会非常慢,那么有没有一种方法,下载的人越多,下载速度越快呢?

当然是有的,我们可以制作一个bt种子,然后使用固定IP的服务器生成种子,并保持做种,这样使用种子下载的用户,彼此之间就可以直接交换数据,下载的用户越多,下载速度就越快。

首先搞一台拥有固定IP的服务器,并完成登陆

我选的24元每月的香港阿里云 https://common-buy.aliyun.com/?commodityCode=swas&regionId=cn-hongkong

香港阿里云

这里建议每次购买一个月,如果某个月IP出了问题,下个月直接换主机。

小技巧:为了避免记ip, 我用子域名hk.v2fy.com直接解析绑定了主机IP, 方便ssh登陆主机

推荐一波ssh连接服务器的软件FinalShell https://www.hostbuf.com/t/988.html, 特色是ssh登陆主机后,支持实时查看服务状态, 支持本地文件拖拽上传到服务器(相当于sftp),非常方便文件管理。

[外链图片转存中…(img-ESOJkpku-1672121846415)]

安装BT软件transmission

sudo apt update
# 安装 transmission ;transmission包含三个子包; transmission-show(查看种子信息) transmission-create(创建种子) transmission-edit(编辑种子)
sudo apt install transmission -y
# 安装 transmission-cli; transmission-cli 为客户端,支持做种seeding
sudo apt install transmission-cli -y
# 安装transmission-daemon;transmission-daemon 支持开机后台启动,守护transmission运行
sudo apt install transmission-daemon -y

# 查看是否安装成功
transmission-show --version
transmission-create --version
transmission-edit --version
transmission-cli --version
transmission-daemon --version

[外链图片转存中…(img-nLO3AMSh-1672121846416)]

查看transmission-daemon默认配置文件

sudo cat /var/lib/transmission-daemon/info/settings.json
{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/var/lib/transmission-daemon/downloads",
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/var/lib/transmission-daemon/Downloads",
    "incomplete-dir-enabled": false,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 1,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 1,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-password": "{de9da53fcab4b2c6219f143c8b19ae505e614256rmsFzRvZ",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "transmission",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true
}

download-dir 可知默认下载路径为 /var/lib/transmission-daemon/downloads

如果我们把bt种子和对应的文件都放在/var/lib/transmission-daemon/downloads 目录,则transmission会进行持续做种(按照BT协议,客户端会在下载的同时,进行上传,如果下载完成,依然可以将下载好的资源上传给其它用户,供其它用户下载,我们将这种文件下载完成后,持续上传给其它用户的行为称为做种,只要做种的人足够多,资源下载就会很快)。

接下来我们需要解决以下问题,就实现了服务端BT做种的目标

  1. 将需要做种的资源放入/var/lib/transmission-daemon/downloads目录
  2. 为资源生成种子,种子生成后,最好能自动触发transmission做种
  3. 为transmission整个图形化Web页面,方便我们查看目前做种资源的状态

第一步:将需要做种的资源放入downloads目录

为避免目录权限不足,上传失败,我们运行命令,让目录支持读写

sudo chmod 755 -R /var/lib/transmission-daemon/downloads/
  • 上传资源
    [外链图片转存中…(img-5HmBbanc-1672121846416)]

  • 上传成功
    [外链图片转存中…(img-CqPQm6S1-1672121846416)]

第二步:为上传的资源生成种子

通过以下命令,可以为 /var/lib/transmission-daemon/downloads/macOS龙神Switch模拟器.zip 文件生成了种子,生成种子的位置在文件同级目录下,种子名为 macOS龙神Switch模拟器.torrent

transmission-create -s 2048 -t http://1337.abcvg.info:80/announce -t http://bt.okmp3.ru:2710/announce -t http://bz.tracker.bz:80/announce -t http://fxtt.ru:80/announce -t http://nyaa.tracker.wf:7777/announce -t http://open.acgnxtracker.com:80/announce -t http://p2p.0g.cx:6969/announce -t udp://v1046920.hosted-by-vdsina.ru:6969/announce -t udp://v2.iperson.xyz:6969/announce -t udp://vibe.sleepyinternetfun.xyz:1738/announce -t udp://www.torrent.eu.org:451/announce  -t http://frp.v2fy.com:8000/announce  -o /var/lib/transmission-daemon/downloads/macOS龙神Switch模拟器.torrent  /var/lib/transmission-daemon/downloads/macOS龙神Switch模拟器.zip
  • 创建成功
    [外链图片转存中…(img-YCAEhAPM-1672121846416)]

所谓种子,就是包含了文件哈希值的记录文件,不同的文件的哈希值是不同的,下载文件的哈希值相同,那下载的文件也会是同一份。另外种子还会包含Tracker服务器的信息,Tracker服务器并不存储文件,只是为用户之间进行信息交换提供沟通渠道。

我们可以使用transmission-show查看种子内容

transmission-show  /var/lib/transmission-daemon/downloads/macOS龙神Switch模拟器.torrent

得到的内容如下,包含12个traker服务器地址,以及文件名文件大小和哈希值

Name: macOS龙神Switch模拟器.zip
File: macOS龙神Switch模拟器.torrent

GENERAL

  Name: macOS龙神Switch模拟器.zip
  Hash: cb0eedb23ff16a0693d5c27356bd262e8a21c9b5
  Created by: Transmission/2.94 (d8e60ee44f)
  Created on: Sun Dec 25 15:21:58 2022
  Piece Count: 199
  Piece Size: 2.00 MiB
  Total Size: 416.0 MB
  Privacy: Public torrent

TRACKERS

  Tier #1
  http://1337.abcvg.info:80/announce

  Tier #2
  http://bt.okmp3.ru:2710/announce

  Tier #3
  http://bz.tracker.bz:80/announce

  Tier #4
  http://fxtt.ru:80/announce

  Tier #5
  http://nyaa.tracker.wf:7777/announce

  Tier #6
  http://open.acgnxtracker.com:80/announce

  Tier #7
  http://p2p.0g.cx:6969/announce

  Tier #8
  udp://v1046920.hosted-by-vdsina.ru:6969/announce

  Tier #9
  udp://v2.iperson.xyz:6969/announce

  Tier #10
  udp://vibe.sleepyinternetfun.xyz:1738/announce

  Tier #11
  udp://www.torrent.eu.org:451/announce

  Tier #12
  http://frp.v2fy.com:8000/announce

FILES

  macOS龙神Switch模拟器.zip (416.0 MB)

从开源项目获取更多Tracker

如果需要更多稳定的Tracker,可以查看开源项目 https://github.com/XIU2/TrackersListCollection

接下来我们配置transmission-deamon ,使其可以自动监听 /var/lib/transmission-daemon/downloads/ 目录,当目录内存在文件时,则自动做种

首先保证关闭transmission-daemon

sudo systemctl stop transmission-daemon.service

然后修改settings.json

vim /var/lib/transmission-daemon/info/settings.json

在settings.json末尾添加

"watch-dir": "/var/lib/transmission-daemon/downloads",
"watch-dir-enabled": true

设置downloads目录权限

sudo chmod 777 -R /var/lib/transmission-daemon/downloads

启动transmission-daemon

sudo systemctl start transmission-daemon.service

查看transmission-daemon状态

sudo systemctl  status transmission-daemon
  • 此时这里会出现报错
    [外链图片转存中…(img-waYdBarc-1672121846416)]
    解决方法参考 https://unix.stackexchange.com/questions/520625/transmission-daemon-udp-failed-to-set-receive-send-buffer

/etc/sysctl.conf 追加

net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

然后运行sysctl -p
[外链图片转存中…(img-saYZTMcd-1672121846416)]

然后重启transmission-daemon 查看状态即可

sudo systemctl restart transmission-daemon.service
sudo systemctl  status transmission-daemon

[外链图片转存中…(img-aRI74sQf-1672121846417)]

进入云服务器后台,开放几个端口

开放端口

以上几个端口为transmission-daemon默认配置

    "rpc-port": 9091,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,

其中 49152-65535端口端,包含了51413,所以51413可以不单独配置开启,这里为了做演示,所以多加了51413端口开启的配置。

此刻我们将macOS龙神Switch模拟器.torrent.added下载到本地, 移除 .added 后缀,将macOS龙神Switch模拟器.torrent 添加到BT种子下载软件,比如 qBittorrent ,即可开始BT资源下载

下载种子

为了保证服务器重启后,依然自动做种,我们需要将 transmission-daemon 设置为开机启动项

sudo systemctl enable transmission-daemon.service

设置开机启动

如果你不需要Web界面,我们的教程就到此结束了,如果需要一个Web界面,查看当前做种的状态,还需要看教程(继续调教transmission-deamon)。

第三步:为transmission加个图形化Web页面,方便我们查看目前做种资源的状态

当前我们未做rpc的配置,所以直接访问 9091 端口会直接403

403

# 关闭transmission-daemon
sudo systemctl stop transmission-daemon.service
  • 修改配置文件settings.json
sudo vim /var/lib/transmission-daemon/info/settings.json
  • 将 rpc-whitelist-enabled的值改完false
"rpc-whitelist-enabled": false,

浏览器访问9091端口,需要输入用户名密码

访问9091

默认用户名和密码都为 transmission

如果需要修改默认用户名密码, 关闭transmission-daemon, 修改settings.json 中的 rpc-password 和 rpc-username即可


sudo vim /var/lib/transmission-daemon/info/settings.json
    "rpc-password": "新密码",
    "rpc-username": "新用户名",

修改完成后,记得重启开启

sudo systemctl start transmission-daemon.service
  • 查看做种速度,以及正在下载的客户端

限速

  • 客户端qbittorrent正在下载
    正在下载

  • 客户端AriaNg下载完成

至此,固定IP的服务器BT做种折腾完成。

如果后续服务器突然嘎嘣了,会影响文件分发么?

BT技术特色是去中心化,只要有人做种,就能保证文件在互联网存活,文件留个备份,换个服务器,依然可以继续做种。

BT种子转磁力链接

为了便于分发我们可以通过 https://nutbread.github.io/t2m/ (工具开源地址: https://github.com/nutbread/t2m)将BT种子在线转为磁力链接

BT转磁力

转换后的磁力链接为(相当于把BT种子内的有效信息转换为字符串):

magnet:?xt=urn:btih:ZMHO3MR76FVANE6VYJZVNPJGF2FCDSNV&dn=macOS%E9%BE%99%E7%A5%9ESwitch%E6%A8%A1%E6%8B%9F%E5%99%A8.zip&xl=416012391&tr.1=http%3A%2F%2F1337.abcvg.info%3A80%2Fannounce&tr.2=http%3A%2F%2F1337.abcvg.info%3A80%2Fannounce&tr.3=http%3A%2F%2Fbt.okmp3.ru%3A2710%2Fannounce&tr.4=http%3A%2F%2Fbz.tracker.bz%3A80%2Fannounce&tr.5=http%3A%2F%2Ffxtt.ru%3A80%2Fannounce&tr.6=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr.7=http%3A%2F%2Fopen.acgnxtracker.com%3A80%2Fannounce&tr.8=http%3A%2F%2Fp2p.0g.cx%3A6969%2Fannounce&tr.9=udp%3A%2F%2Fv1046920.hosted-by-vdsina.ru%3A6969%2Fannounce&tr.10=udp%3A%2F%2Fv2.iperson.xyz%3A6969%2Fannounce&tr.11=udp%3A%2F%2Fvibe.sleepyinternetfun.xyz%3A1738%2Fannounce&tr.12=udp%3A%2F%2Fwww.torrent.eu.org%3A451%2Fannounce&tr.13=http%3A%2F%2Ffrp.v2fy.com%3A8000%2Fannounce

小结

BT做种本是一件很简单的事,但由于中国用户缺少IPV4的固定IP, 所以门槛抬高了,BT是一项很有互联共享精神的技术,人人为我,我为人人,我们只需付出极低的服务器成本,就可以搭建一套分发大型文件的服务,可以称得上是对抗无良网盘的优秀技术。

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2022-12-25-bt-1671963832000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易基因|动物发育过程中顺式调控区域的活性DNA去甲基化早于脊椎动物起源:重磅研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年12月02日,澳大利亚悉尼加尔文医学研究所基因组学和表观遗传学系Ozren Bogdanovic研究团队在《SCIENCE ADVANCES》杂志发表了题为“Active DNA demethylation of develo…

随机创建姓名、手机号等信息Faker类创建的对象的各方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 随机创建姓名、手机号等信息 Faker类创建的对象的各方法 [太阳]选择题 以下python代码结果错误的一项是? from faker import Faker fkFaker() print(fk.name()) print(fk.phone_number()) p…

基于gis平台监控的点位规划系统研究

一、背景 自 2002 年天津市启动了以 “警防、民防、技防” 三张网为主要内容的社会治安防控体系。“技防网” 既覆盖天津全域的具有地区特点的城市报警与监控系统。经多年推进建设,“技防网” 已形成了较为完整的架构体系和建设、运行、管理模式,整体架构…

【K3s】第7篇 详解Kubernetes发布服务类型(例如:暴露给 Kubernetes 集群外部的 IP 地址)

目录 1、发布服务类型 2、NodePort 类型 选择你自己的端口 为 type: NodePort 服务自定义 IP 地址配置 1、发布服务类型 对一些应用的某些部分(如前端),可能希望将其暴露给 Kubernetes 集群外部的 IP 地址。 Kubernetes ServiceTypes 允许…

Vue二次封装组件并发布到npm仓库

1.认识npm NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使…

FFmpeg简单使用:解封装h264 ---- 提取SPS PPS

前言 我们从flv和mp4等文件解封装读取的AVPacket并没有SPS、PPS数据,而是保存在 AVFormatContext -> streams -> codecpar -> extradata里面,下面我们打开一个flv文件看一下 分析一下这块数据,起始位置:0980 大小&#…

【软件测试】测试点总结,收取短信验证码的测试(详全),你的即用宝典......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 现在的APP&#xff…

技术评审管理方案

技术评审(Technical Review, TR)的目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。 技术评审过程域是SPP模型的重要组成部分。本规范阐述了技术评审过程域的三个主要规程: …

基于Java(SSM+SpringBoot+Thymeleaf)+MySQL 开发的论坛社区网站【100010072】

基于 SSM Spring Boot Thymeleaf 开发的论坛社区网站 项目概述 本项目是依据 2019 年牛客项目,基于 SSM Spring Boot Thymeleaf 开发的论坛社区网站,网站实现了如下功能: 使用 Spring Email Interceptor Spring Security 等实现网站…

unity组件介绍

所有物体都是一个空物体,加上一些组件才形成了所需要的GameObject。 这是一个空物体,在Scene场景中没有任何外在表现,因为它只有Transform这个组件,表示它仅仅只有位置,旋转和缩放。 Mesh组件 Mesh Filter mesh filt…

【聆思CSK6 视觉AI开发套件试用】(有彩蛋)AI头肩手势检测

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:Tony_c217AK 牛逼的AI套件 如何3分钟体验AI功能(windows系统 ) 插入上图左边的USB(上图中靠近左边的USB接口),给设备上…

锁,CAS,Synchronized 原理

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 常见的锁 悲观锁与乐观锁 悲观锁 乐观锁 读写锁 重量级锁 vs 轻量级锁 挂起等待锁和自旋锁 公平锁和非公平锁 可重入锁与不可重入锁 CAS …

JavaDS4-链表

目录 1.定义 2.结构 2.1.类似火车 2.2.分类 2.2.1.按方向分 2.2.2.按是否带头节点分 2.2.3.按是否循环分 3.重点掌握 3.1.无头单向非循环链表 3.1.1.在链表的头部添加节点 3.1.2.在链表的任意位置index处添加节点 3.1.3.在链表的尾部添加节点 3.1.4.查询链表的任意…

如何使用单总线?

如何使用单总线?一、什么叫单总线?二、单总线协议?三、怎么使用单总线来做开发?IBUTTON 钥匙读取复制设备项目一、什么叫单总线? 1.如下图,使用单总线的传感器DS18B20 2.使用单总线的储物柜钥匙 3.定义&…

元素偏移量 offset、元素可视区 client和元素滚动 scroll

1、元素偏移量 offset 系列 1.1、offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度&#xff09…

【java】static关键字

static可以修饰的内容如下: ● 变量 ● 方法 ● 代码块 ● 内部类 那就有一个问题,为什么static不能修饰外部类? 我们首先看一下static的作用是什么? 先看看其他人怎么解释的: A static method can be accessed with…

RK3588平台开发系列讲解(进程篇)进程的简介

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、进程的四要素二、进程的三种状态三、task_struct数据结构四、进程优先级五、进程系统调用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍进程的相关知识。 一、进程的四要素 1、有一段程序供其…

Axure 原型适应到不同平台的方法

“老师,公司要求我做一个不同机型的原型,不想重新做,可以适配吗?” “老师,手机有那么多类型,我难道要做那么多的原型吗?” “老师,axure中怎么进行原型的适配呢?应该怎…

云服务器搭建网站(初学)

第一步:来到/var/www/目录下 第二步:在www目录下创建web1文件夹 第三步:来到root目录 第四步:在root目录上传所需要的压缩包 第五步:解压刚刚上传的压缩包到指定的目录(我们刚刚所创建的web1目录&#xff…

HTML5 文件操作

文章目录HTML5 文件操作file元素选择单个文件选择多个文件美化file元素File对象获取文件信息转化单位FileReader对象读取txt文本在线预览图片拖拽文件并读取拖拽图片并预览Blob对象创建并下载txt文件将Canvas下载为一张图片HTML5 文件操作 file元素 语法 <input type&quo…