VPS搭建离线下载服务器——后网盘时代
动机
由于学习的需要,在国外某服务器厂商购买了vps服务(至于是哪个厂商就不说啦)。但是呢,就算用作梯子,一个月1T的流量总是用不完。最经觉得自己营养充足,想找点电影看看。
无奈现在百度网盘的速度真的感人,一年的百度网盘超级会员贵得不要不要的,并且百度的离线下载并不是真的离线,他只是把自己服务器上有的文件拉给你而已。如果想找点稀缺的资源,百度网盘就是个鸡肋啊,摔!
诶,那能不能利用vps来搭建自己的离线下载服务器呢?这样既能利用多余的带宽资源,又能提高下载速度,岂不美哉!带着这个疑问,我在某个寂寞的晚上,开始了搭建。
搭建过程
机器配置
发行版:CentOS 6.9
RAM: 512M
CPU: 单核
带宽: 1000Mbps
这个机器配置不算高,作为下载服务器也是绰绰有余了。
工具选择
经过一番搜索,选择了作为部署的工具 transmission + vsftpd + nginx + aria2c。
- transmission, transmission-daemon: 作为种子、磁力的客户端,作为离线下载的核心工具。
- vsftpd:用于搭建ftp, 来对文件下载文件进行管理(可怜的vps只有10G的磁盘空间 T_T)
- nginx :高性能的nginx用来作为静态文件服务器。
- aria2c:多线程下载器,从nginx的展示的文件列表中高速下载我们离线好的文件。
部署实践
1. 安装transmission,修改配置并启动服务
- 安装transmission及transmission-daemon
$ 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进行操控
"rpc-authentication-required": true,
"rpc-enabled": true,
"rpc-password": "远程调用的密码",
"rpc-whitelist-enabled": false,
"rpc-username": "远程调用的用户名",
- 启动transmission服务
$ sudo service transmission-daemon start
于是我们就能够通过 http://host_ip:9091 进行访问transmission服务.进行了一下测试,速度还是可以的,峰值速度有30MB/s

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

2. vsftpd 搭建ftp服务器
搭建ftp服务器并不是用来下载文件的,通过ftp下载文件发现速度奇慢.所以ftp服务器的作用是用来对文件进行管理的, 一般来说就是删除操作.
- 安装vsftpd
$ yum install -y vsftpd
我们使用Linux用户来登录,不使用虚拟用户(因为要装数据库,麻烦)
因为vsftpd默认不允许使用root登录所以我们要添加用户
- 添加用户
$ useradd ftpuser
$ passwd ftpuser
修改ftpuser的home目录为transmission的下载目录
$ usermod -d /var/lib/transmission/Downloads ftpuser
$ rm -rf /home/ftpuser
- 修改vsftpd配置文件(/etc/vsftpd/vsftpd.conf)
对配置文件如下:
# generate using cat vsftpd.conf | grep -v "#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to Private FTP service.
chroot_list_enable=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/var/lib/transmission/Downloads
其中的配置 chroot_list_enable=NO表明不允许用处切换出home目录.
- 启动vsftpd
sudo service vsftpd start
这样我们就能使用ftp对transmission下载的文件进行管理.
3. nginx 搭建静态文件服务器
利用nginx作为静态资源的服务器,提供已下载资源的展示
安装nginx的操作网上有一堆教程.作为后续的填充.
主要说一说配置
在nginx的配置文件下(/etc/nginx/conf.d/default.conf)这么进行修改
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端口获得文件列表了.
4. aria2c 下载文件
aria2c 用于从服务器上下载文件, 安装于自己的机器上.
主要说一下怎么通过aria2c多线程加速下载
在aria2c中有几个参数和多线程下载有关
- 参数x : --max-connection-per-server=<NUM>, 每个服务器最大的连接数, 默认是1
- 参数s: --split=<N>, 指每个文件下载连接数,默认5,-s受限于-x,如果s默认 x大于5时, x也会受限与s
所以对于大文件来说,将x和s参数适当提高能提高下载速度.
参考链接:
How To Install Transmission BitTorrent Client on CentOS 6
Linux下搭建ftp服务器
VPS搭建离线下载服务器——后网盘时代的更多相关文章
- 在Linode VPS上搭建离线下载神器Aria2+WEBUI管理及对国内云盘看法
在Linode VPS上搭建离线下载神器Aria2+WEBUI管理及对国内云盘看法 2015-09-21 by Hansen 原文链接:http://www.hansendong.me/archive ...
- Visual Studio 2017 Enterprise 发布 15.3.3 版,附离线安装包百度网盘下载。
Visual Studio 2017 Enterprise 发布 15.3.3 版,附离线安装包百度网盘下载. Visual Studio 2017 Enterprise 更新至 15.3.3 ,本安 ...
- 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...
- 搭建手机web服务器-----内网穿透(无需Root)
搭建手机web服务器-----内网穿透(无需Root) 一.内网穿透部分 前言: 网上内网穿透的方法很多,像花生壳.Ngrok.Frp等等,但是大多都需要获取手机root权限 本文使用的软件是Term ...
- yarn-1.12.3.msi 下载地址 百度网盘
yarn-1.12.3.msi 下载地址 百度网盘 链接:https://pan.baidu.com/s/1-JEO1as0Jtp1a1pAqW-mzg 提取码:lbz0
- 搭建nextcloud私有云存储网盘
简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储. 真正试用过后就由衷地赞同这个Nextclou ...
- 20160421javaweb之上传下载小案例---网盘
一.建立数据库: CREATE TABLE IF NOT EXISTS `netdisk` ( `id` ) NOT NULL AUTO_INCREMENT, `uuidname` ) NOT NUL ...
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
最近 Google 被墙了, 上传一下自己收集的 Android 开发环境, 下面给出的官网链接也可以下载; http://www.androiddevtools.cn/ 1. 百度网盘下载地址 An ...
- 使用Aria2+Aria2Ng+OneIndex+OneDrive建立不限流量/离线BT下载/在线观看网盘/在线存储分享平台
获取OneDrive 自行搜索或者宝购买 安装 1.安装宝塔 #Centos系统 yum install -y wget && wget -O install.sh http://do ...
随机推荐
- Three.js与webVR
WebVR如此近 - three.js的WebVR示例程序解析 关于WebVR 最近VR的发展十分吸引人们的眼球,很多同学应该也心痒痒的想体验VR设备,然而现在的专业硬件价格还比较高,入手一个估计就要 ...
- 基于FPGA的腐蚀膨胀算法实现
本篇文章我要写的是基于的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,,腐蚀在二值图像的基础上做"收缩"或"细化"操作,膨胀在二值图像的基础上做" ...
- 中位数的和_KEY
中位数的和 (number.pas/c/cpp) [题目描述] flower 有 N-1 个朋友,他们要一起玩一个游戏:首先确定三个非负整数 a,b,c,然后每个人依次在纸上写一个数,设第 i 个人写 ...
- GitHub使用(三) - GitHub安装及初步使用
1. 首先下载Windows版本“GitHubSetup.exe”如下,下载地址为:https://desktop.github.com/
- Shell 变量详解教程之位置变量与预定义变量。
Shell 变量分为3部分,分别是用户自定义变量.位置变量和预定义变量. 一. 自定义变量 那么,什么是变量呢?简单的说,就是让某一个特定字符串代表不固定的内容,用户定义的变量是最普通的Shell ...
- 用ESP8266+android,制作自己的WIFI小车
整体思路ESP8266作为TCP服务器,,手机作为TCP客户端,自己使用Lua直接做到了芯片里面,省了单片机,,节约成本,其实本来就是个单片机(感觉Lua开发8266真的很好,甩AT指令好几条街,,而 ...
- 利用百度地图WEB服务APIGeoCoding API批量地址解析
Geocoding API包括地址解析和逆地址解析功能: 地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.3 ...
- 面向对象oop
类和对象 1.什么是类?什么是对象? 1)现实世界是由很多很多对象组成的 基于对象抽出了类 2)对象:真实存在的单个的个体 类:类型/类别,代表一类个体 3)类中可以包含: 3.1)所有对象所共有的属 ...
- 三大开源运维监控工具zabbix、nagios、open-falcon优缺点比较
借鉴一下别人的,自己做个记录,我觉得推荐还是使用open-falcon,最重要的一点是有完善的中文帮助文档. 帮助文档地址:https://book.open-falcon.org/zh/index. ...
- Jquery 多选全选/取消 选项卡切换 获取选中的值
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...