树莓派/linux安装aria2及WebUI界面实现远程控制下载

最近突然对远程控制下载产生了兴趣,于是想要搭建一个远程下载的服务器,任务当然也落在了我这个可怜的树莓派上了。。。

远程下载之aria2

这个是一个很强大的下载软件,支持BT下载,并且还可以通过web控制台进行控制。
于是通过简书,找到了不少好用的教程。比如说:使用aria2rpc下载文件说的非常详细。

安装 aria

sudo apt-get install aria2

/etc/aria2/文件夹创建文件

  1. 创建文件夹 sudo mkdir /etc/aria2
  2. 授权 sudo chmod 775 /etc/aria2
  3. 进入文件夹cd /etc/aria2/
  4. 创建session文件:touch aria2.session
  5. 创建并写入设置文件sudo vi aria2.conf
  6. 写入以下内容,需要自己更改的内容就是dir以及rpc-secret了
## 文件保存相关 ##

# 文件保存目录
dir=/mnt/downloads
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 断点续传
continue=true

# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=falloc

## 下载连接相关 ##

# 最大同时下载任务数, 运行时可修改, 默认:5
#max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=15
# 整体下载速度限制, 运行时可修改, 默认:0(不限制)
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0(不限制)
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0(不限制)
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0(不限制)
#max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=true

# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=10

## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60

## RPC相关设置 ##

# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许外部访问, 默认:false
rpc-listen-all=true
# RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=123456

## BT/PT下载相关 ##

# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true

设置aria开机启动

/etc/rc.local文件里面,exit 0 前一行,新增一行命令:
sudo nohup aria2c --conf-path=/etc/aria2/aria2.conf -D >/dev/null &
然后保存并退出,此时就设置好了开机启动了,sudo reboot,重启后就可以自动启动了。

验证是否启动成功

重启后,输入命令:
curl 127.0.0.1:6800/jsonrpc
如果有响应,如下:
{"id":null,"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid Request."}}
就证明是启动成功了。

给aria配置web界面

简介

这个web界面,基本上都是使用的 https://github.com/ziahamza/webui-aria2 这个gayhub项目的。
当然也有个可以直接打开的链接:https://ziahamza.github.io/webui-aria2/,只需要打开,然后在设置里面配置好自己的aria的地址、端口、账号密码或secret就可以了。

先说遇到的坑

第二种方法,明显更简单更方便。但是我却使用不了。原因在于:

console报错

因为我的aria的RPC站点不是https的,所以没办法在https站点使用。
所以我采用了下载源码,然后在树莓派上运行这个网站的办法。
但是运行网站遇到了一个开机启动的问题,困扰了我一下午——只能在node-server.js目录下启动网站,否则网站会404 。

git下载源码

先创建个文件夹,比如我是在/mnt/aria_web/目录下,然后执行下载源码的操作:
git clone https://github.com/ziahamza/webui-aria2.git
下载完成之后下载安装 node.js 。
sudo apt-get install nodejs 或者看我之前的一篇文章:树莓派安装配置nodejs

尝试运行

进入webui-aria2文件夹cd webui-aria2
然后 node node-server.js,应该会提示
WebUI Aria2 Server is running on http://localhost:8888
如果8888端口被占用了(比如我的就是),只需要在node-server.js里面,把第五行的8888改成你想要的端口就可以了,比如我的8989端口。

var http = require("http"),
  url = require("url"),
  path = require("path"),
  fs = require("fs");
port = process.argv[2] || 8888;

现在你进入树莓派的页面应该就可以了http://192.168.1.184:8989/。这个ip是我的树莓派的本地IP,端口也是我自己更改的8989端口,每个人不一样,注意区别。
能打开网页,就证明是OK的了。

设置开机启动

关于这个开机启动,我遇到了很大的阻碍,最后分析了一下源代码,找到了问题并解决了,这个server返回数据是根据启动server的路径决定的,所以如果我开机就通过绝对路径启动会显示404.
解决方案很简单:
把第10行的process.cwd()改成node-server.js所在的目录的字符串形式就可以了。比如我的改成了filename = path.join("/mnt/aria_web/webui-aria2/", "docs", uri);

var http = require("http"),
  url = require("url"),
  path = require("path"),
  fs = require("fs");
port = process.argv[2] || 8888;

http
  .createServer(function(request, response) {
    var uri = url.parse(request.url).pathname,
      filename = path.join(process.cwd(), "docs", uri);

然后继续在rc.local添加启动命令:
sudo nohup node /mnt/aria_web/webui-aria2/node-server.js >/dev/null &
重启树莓派sudo reboot。大功告成!

接下来直接访问树莓派的地址就好了。
当然也可以配置个内网穿透。这样就可以在任意地方遥控树莓派下载文件了。美滋滋。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容