• (5)树莓派安装下载工具aria


    下载源文件 并修改

    git clone https://github.com/aria2/aria2.git
    
    vi aria2/src/OptionHandlerFactory.cc
    
    
    OptionHandler* op(new NumberOptionHandler(PREF_MAX_CONNECTION_PER_SERVER,
                                                  TEXT_MAX_CONNECTION_PER_SERVER,
                                               // "1", 1, 16, 'x'));
                                                  "1", 1, 256, 'x'));  ### 用于修改每个服务器最大连接数
      OptionHandler* op(new UnitNumberOptionHandler(
    //PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "1M", 1_m, 1_g, 'k'));
     PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "1M", 256_k, 1_g, 'k')); # 用于调整每个文件拆分
    
    

    编译初始包

    apt-get install libgnutls28-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libcppunit-dev autoconf automake autotools-dev autopoint libtool git gcc g++ libxml2-dev make quilt  libsysfs-dev -y
    

    需要安装这些依赖包防止编译出现问题

    cd aria2
    
    autoconf -i
    
    ./configure && make && make install 
    
    编译过程中可能出现异常
    
    getrandom_linux.c:40:24: fatal error: sys/random.h: No such file or directory
     #include <sys/random.h>
                            ^
    compilation terminated.
    Makefile:2276: recipe for target 'getrandom_linux.lo' failed
    make[3]: *** [getrandom_linux.lo] Error 1
    make[3]: Leaving directory '/opt/aria2/src'
    Makefile:2341: recipe for target 'all-recursive' failed
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory '/opt/aria2/src'
    Makefile:556: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/opt/aria2'
    Makefile:467: recipe for target 'all' failed
    make: *** [all] Error 2
    
    
    解决方案 vim /src/getrandom_linux.c   注释掉  /* #include <sys/random.h> */ 即可
    

    编译过程真的是很漫长啊 c++ 编译果然名不虚传. 主要还是树莓派性能问题
    直到编译完成 可以通过 aria2 -D 启动

    aria2 配置文件

    mkdir ~/aria2 && touch aria2.conf && aria2.session
    vim aria2.conf
    
    
    # 基本配置
    # 下载目录
    dir=/mnt/B4T/Downloads
    # 下载从这个文件中找到的urls, 需自己建立这个文件
    # touch /home/pi/.aria2/aria2.session
    input-file=/root/aria2/aria2.session
    # 最大同时下载任务数,默认 5
    max-concurrent-downloads=20
    # 断点续传,只适用于 HTTP(S)/FTP
    continue=true
    # HTTP/FTP 配置
    # 关闭连接如果下载速度等于或低于这个值,默认 0
    #lowest-speed-limit=0
    # 对于每个下载在同一个服务器上的连接数,默认 1
    max-connection-per-server=256
    # 每个文件最小分片大小,例如文件 20M,设置 size 为 10M, 则用2个连接下载,默认 20M
    min-split-size=256k
    # 下载一个文件的连接数,默认 5
    split=256
    # BT 特殊配置
    # 启用本地节点查找,默认 false
    bt-enable-lpd=true
    # 指定最大文件数对于每个 bt 下载,默认 100
    #bt-max-open-files=100
    # 单种子最大连接数,默认 55
    bt-max-peers=128
    # 设置最低的加密级别,可选全连接加密 arc4,默认是头加密 plain
    #bt-min-crypto-level=plain
    # 总是使用 obfuscation handshake,防迅雷必备,默认 false
    bt-require-crypto=true
    # 如果下载的是种子文件则自动解析并下载,默认 true
    #follow-torrent=true
    
    bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://tracker.internetwarriors.net:1337/announce,http://tracker.internetwarriors.net:1337/announce,udp://9.rarbg.to:2710/announce,udp://exodus.desync.com:6969/announce,udp://explodie.org:6969/announce,http://explodie.org:6969/announce,udp://public.popcorn-tracker.org:6969/announce,http://tracker.vanitycore.co:6969/announce,udp://tracker.vanitycore.co:6969/announce,udp://tracker1.itzmx.com:8080/announce,udp://ipv4.tracker.harry.lu:80/announce,http://tracker1.itzmx.com:8080/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.port443.xyz:6969/announce,udp://thetracker.org:80/announce,udp://open.stealth.si:80/announce,udp://open.demonii.si:1337/announce,udp://denis.stalker.upeer.me:6969/announce,udp://bt.xxx-tracker.com:2710/announce,http://tracker.port443.xyz:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://retracker.lanta-net.ru:2710/announce,udp://zephir.monocul.us:6969/announce,udp://tracker.uw0.xyz:6969/announce,udp://tracker.toss.li:6969/announce,udp://tracker.cypherpunks.ru:6969/announce,http://tracker.cypherpunks.ru:6969/announce,http://torrent.nwps.ws:80/announce,http://retracker.telecom.by:80/announce,http://open.acgnxtracker.com:80/announce,wss://ltrackr.iamhansen.xyz:443/announce,udp://tracker.iamhansen.xyz:2000/announce,https://tracker.fastdownload.xyz:443/announce,https://opentracker.xyz:443/announce,http://tracker4.itzmx.com:2710/announce,http://tracker3.itzmx.com:6961/announce,http://tracker.city9x.com:2710/announce,http://opentracker.xyz:80/announce,http://open.trackerlist.xyz:80/announce,udp://tracker2.itzmx.com:6961/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.kamigami.org:2710/announce,udp://tracker.ds.is:6969/announce,udp://pubt.in:2710/announce,http://tracker2.itzmx.com:6961/announce,http://tracker.torrentyorg.pl:80/announce,http://t.nyaatracker.com:80/announce,http://share.camoe.cn:8080/announce,http://retracker.mgts.by:80/announce,http://open.acgtracker.com:1096/announce,wss://tracker.openwebtorrent.com:443/announce,wss://tracker.fastcast.nz:443/announce,wss://tracker.btorrent.xyz:443/announce,udp://tracker.justseed.it:1337/announce,udp://packages.crunchbangplusplus.org:6969/announce,https://1337.abcvg.info:443/announce,http://agusiq-torrents.pl:6969/announce
    
    # 为 BT 下载设置 TCP 端口号,确保开放这些端口,默认 6881-6999
    listen-port=65298
    #Set UDP listening port used by DHT(IPv4, IPv6) and UDP tracker
    dht-listen-port=65298
    # 整体上传速度限制,0 表示不限制,默认 0
    #max-overall-upload-limit=0
    # 每个下载上传速度限制,默认 0
    #max-upload-limit=0
    # 种子分享率大于1, 则停止做种,默认 1.0
    #seed-ratio=1
    # 做种时间大于2小时,则停止做种
    seed-time=120
    # RPC 配置
    # 开启 JSON-RPC/XML-RPC 服务,默认 false
    enable-rpc=true
    # 允许所有来源,web 界面跨域权限需要,默认 false
    rpc-allow-origin-all=true
    # 允许外部访问,默认 false
    rpc-listen-all=true
    # rpc 端口,默认 6800
    rpc-listen-port=6800
    # 设置最大的 JSON-RPC/XML-RPC 请求大小,默认 2M
    #rpc-max-request-size=2M
    # rpc 密码,可不设置
    #rpc-passwd=raspberry
    # rpc 用户名,可不设置
    #rpc-user=aria2pi
    # 高级配置
    # This is useful if you have to use broken DNS and
    # want to avoid terribly slow AAAA record lookup.
    # 默认 false
    disable-ipv6=true
    # 指定文件分配方法,预分配能有效降低文件碎片,提高磁盘性能,缺点是预分配时间稍长
    # 如果使用新的文件系统,例如 ext4 (with extents support), btrfs, xfs or NTFS(MinGW build only), falloc 是最好的选择
    # 如果设置为 none,那么不预先分配文件空间,默认 prealloc
    file-allocation=none
    # 整体下载速度限制,默认 0
    #max-overall-download-limit=0
    # 每个下载下载速度限制,默认 0
    #max-download-limit=0
    # 保存错误或者未完成的下载到这个文件
    # 和基本配置中的 input-file 一起使用,那么重启后仍可继续下载
    save-session=/root/aria2/aria2.session
    # 每5分钟自动保存错误或未完成的下载,如果为 0, 只有 aria2 正常退出才回保存,默认 0
    save-session-interval=300
    # 若要用于 PT 下载,需另外的配置,这里没写
    
    # 远程访问所需token密码
    rpc-secret=xxxxx 
    # 设置user-agent
    user-agent=Mozilla/5.0 (Series40; Nokia2055/03.20; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/5.5.0.0.27
    
    

    aria2 bt加速

    https://github.com/ngosang/trackerslist 设置bt track 加速bt下载
    http://www.senra.me/solutions-to-aria2-bt-metalink-download-slowly/

    aria2 开机启动

    touch /etc/init.d/aria2c
    vim /etc/init.d/aria2c   输入以下
    
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          aria2
    # Required-Start:    $remote_fs $network
    # Required-Stop:     $remote_fs $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Aria2 Downloader
    ### END INIT INFO
    do_start()
    {
            echo -n "Starting aria2c"
                 su root -c "aria2c --conf-path=/root/aria2/aria2.conf -D"
                #这里的路径根据自己的来更改
    }
    do_stop()
    {
         echo -n "Shutting down aria2c "
            pkill -f aria2c
    }
    do_restart() {
        do_stop
        sleep 1
        do_start
    }
    case "$1" in
    start)
       do_start
       ;;
    stop)
       do_stop
       ;;
    status)
      exit $?
      ;;
    restart)
      do_restart
      ;;
    *)
       echo "Usage: service aria2c {start|stop|status|restart}" >&2
       exit 1
       ;;
    esac
    exit
    

    程序自启动 sudo update-rc.d aria2c defaults

    安装web访问

    先安装web服务器

    apt-get install nginx -y
    
    cd /var/www/html
    
    wget https://github.com/mayswind/AriaNg/releases/download/0.5.0/AriaNg-0.5.0.zip
    
    unzip AriaNg-0.5.0.zip
    
    rm -rf AriaNg-0.5.0.zip
    
    service nginx restart
    

    至此就可以通过 host:80 访问 aria2 服务了, 需要配置json-rpc 配置成功后就可以访问

  • 相关阅读:
    linux下编译安装mysql
    Linux系统信息查看命令(转载)
    python使用memcached
    ./configure 命令使用和参数解析
    linux平台下使用 nginx + spawn-cgi 部署webpy程序
    冒泡排序
    在gitub上添加ssh key
    给p标签做单行省略 设置宽度的问题
    移动端的无缝滚动
    canvas-图片翻转
  • 原文地址:https://www.cnblogs.com/Zidon/p/10188522.html
Copyright © 2020-2023  润新知