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类似UI界面:

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服务器

(0)

相关推荐

  • VPS搭建离线下载服务器(后网盘时代)

    动机 由于学习的需要,在国外某服务器厂商购买了vps服务(至于是哪个厂商就不说啦).但是呢,就算用作梯子,一个月1T的流量总是用不完.最经觉得自己营养充足,想找点电影看看. 无奈现在百度网盘的速度真的感人,一年的百度网盘超级会员贵得不要不要的,并且百度的离线下载并不是真的离线,他只是把自己服务器上有的文件拉给你而已.如果想找点稀缺的资源,百度网盘就是个鸡肋啊,摔! 诶,那能不能利用vps来搭建自己的离线下载服务器呢?这样既能利用多余的带宽资源,又能提高下载速度,岂不美哉!带着这个疑问,我在某个寂

  • 搭建nextcloud私有云存储网盘的教程详解

    Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows.Mac.Android.iOS.Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘. 简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是"下一代"

  • 教你使用Apache搭建Http下载服务器

    目录 前言 Apache快速上手 修改端口号 设置访问限制 配置文件参数详解 限制连接量 封禁ip 设置账号密码访问 参考 前言 前段时间因为某些原因,几大主流网盘都无法使用,正好手头上有台闲置的云服务器,于是就想来搭建一个文件下载服务,用户只需通过一个链接就能下载软件. Apache快速上手 经过调研,发现Ubuntu采用Apache2这个软件就可以快速满足我的需求. 安装Apache2 apt-get install apache2 安装好之后,启动Apache2服务: /etc/init.

  • 手把手搭建Java共享网盘的方法步骤

    项目介绍 在线共享网盘采用jsp+servlet搭建项目结构实现共享网盘,项目分为管理员,普通用户和付费用户三种角色,根据不同角色控制不同权限,实现不同用户对个人文件文件,所有文件,共享文件的增删改查操作. 项目适用人群 正在做毕设的学生,或者需要项目实战练习的Java学习者 开发环境: jdk 8 intellij idea tomcat 8.5.40 mysql 5.7 所用技术: jsp+servlet js+ajax layUi jdbc直连 项目访问地址 http://localhos

  • JS实现百度网盘任意文件强制下载功能

    代码: //get file list data var data=require("system-core:context/context.js").instanceForSystem.getList().listView.listsData; //calculate sign function base64Encode(r){var t,e,a,c,n,o,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012

  • Java如何搭建一个个人网盘

    目录 前言 一.项目介绍 二.网盘搭建 2.1 Windows 环境运行 2.2 Linux 环境运行 三.开发环境运行 3.1 下载项目 3.2 运行 3.3 阅读代码 四.功能说明 4.1 上传 4.2 视频/音频播放 4.3 快捷键使用 4.4 配置文件修改 4.5 在线预览 4.6 分享下载链接 五.最后 前言 本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 网盘项目. 今天给大家带来一款开源 Java 版网盘项目-- kiftd-source,本文将用 3 分钟带

  • 用Docker搭建nextcloud个人网盘教程

    目录 一.简介 二.部署环境 三.工具 四.部署过程 总结 一.简介 nextcloud是一个非常好用的网盘系统,功能强大插件齐全,非常适用于个人网盘和企业网盘搭建. 二.部署环境 服务器系统:CentOS7 Docker版本:20.10.10 三.工具 使用工具:Docker 20.10.10 四.部署过程 1.宿主机新建Nextcloud文件夹,Nextcloud文件夹用于映射Nextcloud容器的存储路径. mkdir -p /home/docker/nextcloud 2.搭建mysq

  • linux下使用Docker和OSS轻松搭建ownCloud专属网盘(网盘关闭不用怕)

    文件共享是团队协作的刚需,面对说停就停的网盘服务,很多同学除了心塞已经开始盘算搭建自己的网盘应用了. ownCloud 是一个开源免费的存储管理工具,它能帮你快速架设一套专属的网盘服务,可以像 Dropbox 那样实现文件跨平台同步.共享.版本控制.团队协作等等. 然而在VPS上搭建ownCloud是一件费时费力的工作,除此之外更需要考虑数据的可靠性.备份等工作. 本文将利用阿里云容器服务在几分钟内轻松搭建一个基于Docker的ownCloud专属网盘,并使用阿里云提供的OSS(Object S

  • Linux下使用nextcloud搭建个人网盘代码实例

    前言 市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因: 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云) 付费网盘服务又太贵,穷逼用不起 数据放在别人的服务器不安全,说不定就变成 8s 了 瞎折腾有趣 两三个月前,矿难无情人友情,三百块入手了一台 4 盘位的 nas 主机,装上 ubuntu,就开始了折腾. 为什么要选择 nextcloud 呢? 开源 各个平台都有客户端,方便管理 功能很完善 下面开始

  • 使用pcs api往免费的百度网盘上传下载文件的方法

    百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的. 环境准备: 开通读写网盘的权限及获取access_token:http://blog.csdn.net/langyuezhang/article/details/47206621 百度官方pcs api文档:http://developer.baidu.com/wiki/index.php?title=docs/pcs/overview,上面有各种语言的SDK,我用的laravel

随机推荐