VPS搭建离线下载服务器

在资源审查时代,各大网盘都纷纷倒闭,要么就要收非常高的费用,并且大多数资源都被审查。作为一个不妥协的愤青,我们要怎么应对呢?

动机

由于学习的需要,在国外某服务器厂商购买了vps服务。但是呢,就算用作梯子,1T/mo的流量总是用不完。
最近觉得自己营养充足,想找点电影看看。无奈现在百度网盘的速度真的感人,一年的百度网盘超级会员贵得不要不要的,并且百度的离线下载并不是真的离线,他只是把自己服务器上有的文件拉给你而已。如果想找点稀缺的资源,百度网盘就是个鸡肋啊,摔!

诶,那能不能利用vps来搭建自己的离线下载服务器呢?这样既能利用多余的带宽资源,又能提高下载速度,岂不美哉!带着这个疑问,我在某个寂寞的晚上,开始了摸索。

搭建过程

机器配置:

  • 发行版: CentOS 6.9
  • RAM: 512M
  • CPU: 1 core
  • Bandwidth: 1000Mbps
  • Disk: 10G

机器配置不算特别好,好在带宽比较不错,是资源下载服务器必备的要求。

工具选择

经过一番搜索,选择了作为部署的工具 transmission + nginx + aria2c。

  • transmission, transmission-daemon: 作为种子、磁力的客户端,作为离线下载的核心工具。
  • nginx :高性能的nginx用来作为静态文件服务器。
  • aria2c:多线程下载器,从nginx的展示的文件列表中高速下载我们离线好的文件。

撸起袖子就是干

安装transmission,修改配置并启动服务

1
2
3
4
$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm
$ yum -y upgrade
$ yum -y install transmission transmission-daemon

修改配置并启动transmission服务

在路径/var/lib/transmission/.config/transmission 下的 settings.json 文件就是transmission的配置文件。里面有一大堆配置.我们需要修改下面的配置,这样就可以使用远程软件对我们的tranmission进行操控

1
2
3
4
5
"rpc-authentication-required": true,  
"rpc-enabled": true,
"rpc-password": "远程调用的密码",
"rpc-whitelist-enabled": false,
"rpc-username": "远程调用的用户名",

启动transmission服务

1
$ sudo service transmission-daemon start

于是我们就能够通过 http://host_ip:9091 进行访问transmission服务.进行了一下测试,速度还是可以的,峰值速度有30MB/s

另外我们还可以安装 Transmission-Remote-GUI 来对transmission进行操控,而不用访问页面, Linux(Mint)下在应用商店就能够下载. 操作方式和uTorrent类似
GUI界面:

用Nginx搭建静态文件服务器

利用nginx作为静态资源的服务器,提供已下载资源的展示。安装nginx的操作网上有一堆教程.作为后续的填充.这里就主要说一说配置

在nginx的配置文件下(/etc/nginx/conf.d/default.conf)这么进行修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;

server {
listen 8090;
listen [::]:8090;
server_name localhost;

charset utf-8;
location / {
root /var/lib/transmission/Downloads;
index index.html index.htm;
}
}

启动nginx服务就可以通过8090端口获得文件列表了.

aria2c 下载文件

aria2c 用于从服务器上下载文件, 安装于自己的机器上.

主要说一下怎么通过aria2c多线程加速下载

在aria2c中有几个参数和多线程下载有关

  • 参数x: —max-connection-per-server=, 每个服务器最大的连接数, 默认是1
  • 参数s: —split=, 指每个文件下载连接数,默认5,-s受限于-x,如果s默认 x大于5时, x也会受限与s

所以对于大文件来说,将x和s参数适当提高能提高下载速度.

后续修改

其实这个搭建过程非常简陋,这篇博文是从我自己博客园迁移过来的。现在看看,也非常的简陋,不过也算是能使用了。
在这个期间,也了解了一些工具, 而且使用Nginx搭建文件服务器, 非常简陋没有做任何的认证之类的工作。很容易就被黑客利用。后续想挤出一点时间对这个东西做做改进。

  • 使用openresty编写网页服务,做一个简单的用户认证页面,和用户下载页面
  • 调研一下使用UDP传送文件的技术如tsunami-udp之类的解决方案,加速文件的抓取

Reference:

Author: lisupy
Link: http://lisupy.github.io/2017/11/01/VPS搭建离线下载服务器/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏
微信打赏