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

  • 相关阅读:
    在MFC中使用一个单独的类实现数据在各个类之间的传递
    在MFC中实现对象之间数据的传递。
    extern,头文件和ifndif宏
    在MFC下如何定义全局变量和全局函数
    语言当中一些经常看到 却又迷糊的修饰符
    C++基础之头文件和源文件的关系
    如何使用别人的代码 (特指在MFC里面 或者推广为C++里面)
    DataGird 相关
    在MFC里面使用ADO访问微软的ACCESS数据库 实现增删改查
    Invert Binary Tree
  • 原文地址:https://www.cnblogs.com/pluviophile/p/7764782.html
Copyright © 2020-2023  润新知