在网上寻找资源的时候时不时可能遇到一些种子链接,必须通过 BitTorrent 等工具才能下载,但由于国内的 ip 地址较少,而且一般使用种子分享的资源体积都比较巨大,直接使用本地下载耗费很多无用的时间。我们如果自己搭建一个能长时间运行的服务器来代替我们下载,不仅不占用自己电脑的空间,还能 24h 不间断下载,节约了大量时间空间成本。
1 BT 种子下载原理
许多资源,尤其是蓝光源盘等大型资源,一般都是通过 BT 种子的方式来下载传输,具体而言大致分为以下几点:
1.1 种子文件
在这里我们假设等待分享的资源是 A 文件,将这个资源存放在服务器中并做成种子,所谓的种子,一般即指的是 torrent 文件,其中包含了
- 全部文件及文件夹的名称。
- 全部文件分块的索引信息和 Hash 校验码。假设 A 的大小为 1GB,分块大小为 1MB,那么就会分成 1024 块;每一块都有对应的一个 Hash 校验码,以确保从服务器中下载的块与源文件 100% 相同,增强安全性。
- Tracker 地址。Tracker 地址是实际上是一个问询服务器,当有服务器向其发出请求时,它会返回当前有哪些服务器上有所需要的文件,这样这个服务器就可以直接转而向那些服务器请求文件了。
- 其他辅助信息。比如制作种子的软件等。
1.2 下载种子
所谓的 BT 下载,实际上就是下载 torrent 文件,然后解析其中的文件内容和 Tracker 地址等,然后经由 Tracker 地址找到拥有一部分或者全部文件的服务器,再向这些服务器发起请求。这时候文件分块的好处就体现出来了。由于分块很小,我们可以从不同的服务器中下载不同的块,最后只要把他们“拼装”成一个完整的文件就可以了。因此只要能找到拥有资源的服务器,就算他们并没有一个完整的资源,只要他们缺省的块“互补”的话,我们一样能下载的了整个资源。
1.3 做种
所谓的做种,即是他人通过自己的服务器下载资源。在下载的过程中实际上我们就已经开始给别人做种了,因为这时候我们已经下载下来的块可以供别人下载。而在下载完成后,如果设置了做种时间等,则可能还会继续提供给别人下载一段时间。这个过程实际上是非常重要的,倘若没人做种,这个种子就失效了。一般建议做种率在 1.0 以上,不过前提还是拥有足够的带宽。
1.4 优势与不足
BT 种子的优势很明显,就是分享方便,而且如果一个资源有很多服务器都有,那么下载的速度就会非常快,因为可以从各个不同的服务器上获取。而由于文件经过严格的校验,其安全性也很高。
与此同时也有它的不足,最致命的便是找不到有资源的服务器,那么此时网速再好也拯救不了了。这就牵扯出另外一个弱点,时效性。时间过于久远的资源,或者体积过大的资源,由于下载的人较少,做种的人更少,很容易出现下不下来的情况。
2 搭建 BT 站
说完原理,现在就直奔主题,着手搭建一个 BT 站。这里选择使用 transmission 来搭建,比较方便快捷。
2.1 安装 transmission
在 Ubuntu 系统下,可以直接通过 apt 安装的 transmission,但安装的可能不是最新版,以下通过 transmission 官方源来安装:
|
|
这时 transmission 就已经安装好了,此时先停止 transmission:
|
|
再去修改配置文件,配置文件存放在 /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
,以下贴出我的配置:
|
|
重新开启 transmission:
|
|
然后在浏览器中进入 http://{ip_address}:9091
并输入密码就可以进入 transmission 的主页面了。
2.2 修改默认下载地址
由于 transmission 并不是以 root 权限运行,而是以用户 debian-transmission 的身份运行的,因此在配置中修改默认下载地址之前,需要提前建立一个文件夹,并将其权限赋予 debian-transmission,以下举例说明,在 root 权限下执行:
|
|
2.3 使用 Nginx 反向代理
每次输入 http://ip_address:9091
确实比较麻烦,这里通过 Nginx 反向代理实现直接通过 ip 地址或域名即可访问。倘若有域名,还可以进一步使用 HTTPS 来加强安全性。
安装好 Nginx 后,在文件夹 /etc/nginx/conf.d/
中添加一个后缀为 .conf
的文件作为配置文件,如 example.conf
,配置内容如下:
|
|