• 使用aria2搭建离线下载服务器


    简介

    实现效果:

    在VPS主机上安装aria2下载软件用作离线下载,能够远程管理下载,下载完成后能够通过HTTP(或其他任何你愿意的方式)从VPS取回。

    不足:

    aria2本身不支持删除下载任务中的文件,所以,不论是下载完成后已经不需要的文件,还是删除任务放弃下载的文件,都要手动登陆主机去删除。

    需要条件

    运行Linux操作系统的VPS一个,本文以Debian 9为例。

    VPS上安装、配置Aria2

    • 安装
      在Ubuntu、Debian上安装Aria2非常方便,SSH远程登录VPS后执行如下命令即可:
    apt update
    apt install aria2
    

    其他操作系统可以访问aria2官网获取下载、安装信息。

    • 配置&启动
      aria2最简单的运行方式是$ aria2c <download-url-path>,即会从给出的url下载文件。但我们希望它能记住一些设置,常驻后台运行。aria2启动时会首先尝试从$HOME/.aria2/aria2.conf读取配置文件,对于一般VPS上我们都用root账户登录,那么目录即为/root/.aria2/aria2.conf。此外,可以在启动时加入--conf-path参数手动指定配置文件位置,也可以通过--no-conf强制不读取配置文件。

    首先创建配置文件:

    cd ~                 # 进入HOME目录
    mkdir .aria2         # 创建文件夹
    cd .aria2             # 进入文件夹
    touch aria2.conf     # 创建配置文件
    touch aria2.session  # 会话文件,若开启session会用到
    

    使用vim或其他编辑器编辑配置文件aria2.conf,可参考如下,#之后为注释内容,不起配置作用

    ##### RPC Options #####
    
    # 开启JSON-RPC/XML-RPC服务,从而能够通过其接口控制aria2,默认为true
    enable-rpc=true
    # 指定访问端口号,默认6800
    rpc-listen-port=6800
    # 允许所有访问来源,web控制界面跨域需要,默认false
    rpc-allow-origin-all=true
    # 允许除local loopback以外的网卡访问,默认false,远程控制需要
    rpc-listen-all=true
    # 外部访问安全令牌,强烈建议设置token并记住
    rpc-secret=123456
    # 若不设置token,也可通过用户名密码访问,现版本不建议使用
    # rpc-user=<username>
    # rpc-passwd=<passwd>
    
    ##### Advance Options #####
    
    # 以守护进程方式后台运行,默认为false,也可在启动aria2c时加上-D选项达到相同效果
    daemon=true
    # 磁盘缓存,可设为0禁用,默认16M。
    disk-cache=16M
    # 磁盘空间分配模式,可选none,prealloc,trunc,falloc,默认prealloc
    # 若完整分配,官方建议ext4、NTFS使用falloc快速分配,可以瞬间完成分配
    # FAT32、ext3建议使用prealloc,如果此时使用falloc分配时间和prealloc相当,分配时会造成aria2卡顿
    file-allocation=falloc
    
    # 使用会话文件保存信息,并能够从意外错误(断电等)错误中恢复
    save-session=/root/.aria2/aria2.session
    # 指定开启时读取会话文件的位置
    input-file=/root/.aria2/aria2.session
    # 定期保存会话,默认0为只在退出时保存
    save-session-interval=60
    
    ##### Basic Options #####
    
    # 下载路径
    dir=/root/Downloads
    # 最大同时下载任务数量,默认为5
    max-concurrent-downloads=20
    # 若下载速度低于此值(Byte/s),会被自动暂停,速度可以有K或M等后缀,对BT下载无效
    #lowest-speed-limit=0
    # 每个下载任务对单个服务器最大的链接数量,默认为1
    max-connection-per-server=10
    # 任务分块大小,当下载文件大小大于两倍于此设置时,会被分块下载,默认20M
    min-split-size=20M
    # 任务分块数量,默认为5
    split=10
    # 可以通过伪装方式进行PT下载,参考下列设置,但请谨慎尝试
    # DHT(若torrent禁用,即使设置为true也不会启用)
    # enable-dht=false
    # enable-dht6=false
    # 本地查找(若torrent禁用,即使设置为true也不会启用)
    # bt-enable-lpd=false
    # 本地peer交换(若torrent禁用,即使设置为true也不会启用)
    # enable-peer-exchange=false
    # 客户端伪装
    peer-id-prefix=-TR2770-
    user-agent=Transmission/2.77
    

    在写好配置文件后,若配置文件包括daemon=true,那么运行aria2c

    aria2c
    

    aria2即会在后台运行。

    通过AriaNG管理Aria2

    AriaNG其官网如下:

    http://ariang.mayswind.net/zh_Hans/
    

    release发布地址:

    https://github.com/mayswind/AriaNg/releases
    

    最新每日构建:

    https://github.com/mayswind/AriaNg-DailyBuild/archive/master.zip
    
    安装、配置AriaNG

    如果服务器上没有Web服务器软件,可以安装nginx:

    apt install nginx
    

    在nginx配置文件/etc/nginx/sites-available/default中,可以看到root /var/www/html一行,代表nginx的默认Web服务器以文件夹var/www/html为根目录,下载得到的AriaNG程序直接放到这里就可以。

    下载Aria2,例如当前版本为0.2.0,并解压、移动到相应目录:

    wget https://github.com/mayswind/AriaNg/releases/download/0.2.0/aria-ng-0.2.0.zip
    unzip aria-ng-0.2.0.zip -d ./airang
    sudo mv ./airang/* /var/www/html/
    

    然后重启nginx服务

    service nginx restart
    

    此时用浏览器访问这台主机的地址,应当能够看到AriaNG的页面。
    在AriaNG页面的左边栏中的AriaNG设置中配置Aria2的连接设置。Aria 2 RPC地址设置为下载机的IP地址或域名,设置连接密钥,其他一般保持默认即可。

    如果AriaNG部署在VPS中,那么安全起见,建议给Web设置访问密码。

    首先安装apache2-utils,其包含用于生成密钥文件的工具htpasswd

    apt install apache2-utils
    

    进入计划用于存放密钥文件的文件夹,例如/var/www/auth

    cd /var/www
    sudo mkdir auth
    cd auth
    

    在这里使用htpasswd生成验证所需的文件

    htpasswd -c -d ./nginx_auth  admin
    

    这里的登陆名为admin,也可以设置为其他用户名,按需要进行修改,然后根据提示设置密码,生成文件nginx_auth

    使用编辑器打开/etc/nginx/sites-available/default
    在server后的大括号内补充:

            auth_basic "Authrization";
            auth_basic_user_file /var/www/auth/nginx_auth;
    

    重启nginx

    sudo service nginx restart 
    

    此时再访问AriaNG页面会要求用户名、密码。


    出现认证失败的情况: 如果显示认证失败,可以在下面画红框的地方,输入秘钥123456,密钥在配置文件设置,此处设置为123456。
    # 外部访问安全令牌,强烈建议设置token并记住
    rpc-secret=123456
    

    在这里插入图片描述


    配置文件取回功能

    我们希望aria2下载好文件后,我们能够通过浏览器访问下载目录,并能下载文件。可以搭建HTTP或FTP服务来实现这一功能。通常HTTP和FTP搭建的文件服务,可以使用下载工具,一些服务软件(如nginx)还可以支持多线程下载、断点续传。

    使用nginx搭建HTTP文件服务
    这里使用另一个端口号(8080)做文件服务器,若要访问下载目录,在浏览器输入http://[主机IP地址或域名]:8080访问。

    我们在/etc/nginx/sites-available/下新建一个站点配置

    cd /etc/nginx/sites-available/
    touch file                       # 创建一个名为file的文件
    

    打开file,做如下配置:

    server {
    		        listen 8080 default_server;
    		        listen [::]:8080 default_server;
    		        root /root/Downloads;    # 这里使用下载文件夹的绝对路径
    		        server_name _;
    		        auth_basic "Authrization";
    		        charset utf-8;				#防止乱码
    		        auth_basic_user_file /var/www/auth/nginx_auth;  # 同样要求密码登陆
    		        location / {  # 使nginx自动生成文件列表
    		                autoindex on;
    		                autoindex_exact_size on;
    		                autoindex_localtime on;
    		        }
            }
    

    然后转移到/etc/nginx/sites-enabled/下,创建配置文件的软链接。

    cd /etc/nginx/sites-enabled/
    ln -s /etc/nginx/sites-available/file ./file
    

    最后打开/etc/nginx/nginx.conf,修改首行的内容如下:

    # user www-data; #此行在最开始时没有被注释,需手动注释一下
    user root;  # 或者其他具有下载文件夹访问权限的用户名称
    

    从而避免因默认的www-data用户无权访问下载文件夹导致的403错误。

    然后重启nginx服务

    service nginx restart
    

    至此,可以通过http://[主机IP地址或域名]:8080看到下载文件夹下的文件。注意的是这里不能有index.html、index.php等Web默认的首页名称,否则nginx会直接加载这些页面。

  • 相关阅读:
    Quartz入门例子简介 从入门到菜鸟(一)
    初识Quartz之第一个Quartz实例
    @DisallowConcurrentExecution 注解的作用 【定时器执行完当前任务才开启下一个线程的方式】
    no identities are available for signing
    Unity3D研究院之在把代码混淆过的游戏返混淆回来
    安沃广告问题
    IOS 接ShareSDK问题
    网页中插入Flvplayer视频播放器代码
    unity Android 打包后读取 xml 文件
    unity3d 下操作excel 与打印
  • 原文地址:https://www.cnblogs.com/laohaozi/p/12537612.html
Copyright © 2020-2023  润新知