关于 Aria2
- 高速,自动多线程下载;
- 断点续传;
- 轻量。占用内存非常少,通常情况平均 4~9MB 内存占用(官方介绍);
- 多平台。支援 Win/Linux/OSX/Android 等操作系统下的部署;
- 模块化。分段下载引擎,文件整合速度快;
- 支持 RPC 界面远程;
- 全面支持 BitTorrent 协议;
Install Aria2
- 先安装 Homebrew:
- 打开终端(Terminal or iTerm)
- 安装 XCode(已安装可跳过,选装 XCode 的 CLI 工具):
$ xcode-select --install
- 复制并运行 Homebrew 安装命令:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 查看版本(确认安装是否完成):
$ brew --version
- Homebrew 管理工具加入系统后,安装 Aria2:
- OSX 运行:
$ brew install aria2
- Linux 运行:
$ sudo apt-get install aria2
- OSX 运行:
- 查看命令安装情况:
$ aria2c --version
提示版本及说明则表示已安装完成。
配置 Aria2
- 在系统主目录下新建
.aria2
文件夹。$ mkdir .aria2
- 在 .aria2 文件夹下新建
aria2.conf
配置文件。- 进入文件夹:
$ cd .aria2
- 创建配置文件:
$ touch aria2.conf
- 进入文件夹:
- 在 Finder 里查看并对文件进行编辑。
- a. iTerm/Terminal 当前路径下(
~/.aria2/
)输入命令$ open .
进入 Finder 界面下 .aria2 文件夹; - b. Finder 界面,快捷键 Command + Shift + G 在弹出的路径跳转小窗口,填入
~/.aria2/aria2.conf
后 Return。
- a. iTerm/Terminal 当前路径下(
- 使用 TextMate/Sublime Text/TextEdit 等编辑器打开 aria2.conf 文档,填入内容。
#用户名
#rpc-user=user
#密码
#rpc-passwd=passwd
#上面的认证方式不建议使用,建议使用下面的token方式
#设置加密的密钥
#rpc-secret=token
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置
dir=/Users/YourID/Downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
$ pwd
命令查看)。Aria2 的使用
- 命令直接调用。调用命令
$ aria2c "download.url"
下载完成后退出 - 后台常驻触发,也就是 rpc server 模式。Aria2 作为后台常驻程序,监测 rpc 端口的活动情况,添加并下载文件。完成后继续在后台运行。
$ aria2c --conf-path=<Path>
<Path>
是指配置文件所在的绝对路径。依照上述配置一路下来,具体是:$ aria2c --conf-path="/Users/YourMacID/.aria2/aria2.conf" -D
- aria2.conf 文件配置是否出错;
- 代理工具是否切换到全局穿越模式,如有,则退出全局模式再重试;
kill
命令来关闭 Aria2。- 输入
$ kill aria2c
点 Tab 键,显示 aria2 的进程号,然后 Return。Aria2 的进程将被关闭。 - 直接
$ killalll aria2c
关闭进程。
搭配 Aria2 Web UI
优化启动
- VIM 编辑全局配置文件:
- 命令行工具默认:
$ vi ~/.bashrc
- 配置 zsh 的命令行工具:
$ vi ~/.zshrc
- 命令行工具默认:
- 在末尾添加一条新的 alias:
alias aria="aria2c --conf-path="/Users/YourID/.aria2/aria2.conf" -D"
- 使之全局生效:
- 命令行工具默认:
$ source ~/.bashrc
- 配置 zsh 的命令行工具:
$ source ~/.zshrc
- 命令行工具默认:
- 以后每次开机或重新启用终端后,键入以下命令直接启用 Aria2,使它常驻后台:
$ aria
一个支持 离线下载/BT/磁力链接 的在线管理工具 —— Aria2 WebUI
配置环境
教程测试环境是:Debian 7
这个Aria2 WebUI是一个 Web面板 + Aria2c后端 组成的。
而这个 Web面板并没有用到PHP,所以不需要PHP环境,只要能运行HTML就可以了。
我这里提供三个方法:Nginx、Apache、LNMP一键包。
因为不需要PHP,不需要数据库,所以单独安装Nginx或者apache都是可以的,也是属于最简安装。当然LNMP一键包我写教程都会带上这个的。
Nginx
apt-get install nginx -y
这时候你的 虚拟主机文件夹就是这个,进入这个文件夹,并删除默认的首页:
cd /usr/share/nginx/www
rm -rf index.html
Apache
注意这个,一些openvz框架的系统可能会自带apache,不要重复安装。
apt-get install apache -y
这时候你的 虚拟主机文件夹就是这个,进入这个文件夹,并删除默认的首页:
cd /var/www
rm -rf index.html
安装步骤
一下安装步骤,我以 LNMP一键包 的虚拟主机目录 为例!
首先是安装 aria2c 后端和git。
apt-get install aria2c
apt-get install git -y
然后通过上面的配置环境步骤 进入你的虚拟主机文件夹,执行以下命令安装前端面板:
git clone https://github.com/ziahamza/webui-aria2.git
# github地址:https://github.com/ziahamza/webui-aria2
mv webui-aria2/* .
rm -rf webui-aria2
chmod -R 755 你的虚拟主机文件夹
# 例如chmod -R 755 /home/wwwroot/233.com
然后这时候通过你的 域名或者IP 就可以访问你的 前端面板了。
当然这个时候还没有启动 后端,所以前端面板在无法连接到后端的时候会一直提示出错。
配置后端
因为 aria2c 后端启动后就不能关闭SSH,所以需要设置一下后台运行。
apt-get install screen -y
# 安装screen
screen -S aria2c
# 创建aria2c活动(名称随意)
screen -r aria2c
# 如果你关闭SSH后想重新进入这个活动就输入这个。
然后就是启动 aria2c 后端了,下面这个代码是直接启动。
aria2c --enable-rpc --rpc-listen-all
下面这个代码是设置了下载文件目录、登录用户名和密码(强烈建议使用这个代码来进行加密,避免暴露你的IP或域名)
aria2c --enable-rpc=true --rpc-listen-all --rpc-allow-origin-all=true --rpc-listen-all=true --dir=/home/wwwroot/你的域名/download --rpc-user=用户名 --rpc-passwd=用户密码
运行完后,访问你的 IP 或者 域名 进入前端面板配置。
配置前端
首先,如果你设置了登录用户名和密码,那你打开网站后就会提示输入用户名和密码。
没有设置这个或者登录进去后,需要设置 连接设置。
点击顶部菜单栏 设置——连接设置。
主机选项,如果你用的是IP或者域名就填写上去,也可以留空,留空代表默认本机。
端口选项,后端启动的时候没有指定端口的话就是默认的6800.
用户名和密码选项是可选的,根据上面启动后端时候设置的填写。
最后的直接下载选项,就是填写相对路径。
比如你的 虚拟主机文件夹 是 /home/wwwroot/你的域名
然后你的 下载文件目录 是 /home/wwwroot/你的域名/download
那么你就填写 /download/ 。
最后点击下面的 保存连接设置 按钮,不出意外就会提示连接成功,当然有时候还是会提示失败,多刷新几次就好了。
这时候你就可以添加下载任务了。
以 使用链接下载 为例,下载我的 逗比 · 云 中的一个视频文件。
pause 选项是,提交下载任务后,是暂停还是直接下载,默认false就是提交后直接下载了。
dir 选项就是下载目录了。
然后点击 开始 提交下载任务。
下载完成后,如果你在 连接设置 中设置的直接下载的相对路径正确,那你直接点击下面的文件名就可以下载到本地了。
当然因为 html5的支持,一些视频文件可以在线播放。
所以就实现了,离线下载视频,并在线观看!
注意事项
这个前端面板并不会保存任何设置,所有设置都是 从后端的启动参数中获取的。
大部分IDC都是对版权文件敏感,特别是美国的VPS,当你下载BT和磁力链接文件的时候,很有可能会被封VPS。
所以请自行选择 版权文件不敏感的 瑞典 乌克兰 俄罗斯 罗马尼亚 地区的IDC的VPS.
--------------------------
aria2配置示例
首先,aria2或者叫做aria2c,它是一个下载器,嗯。
常用的两种模式是直接下载,比如
aria2c "http://host/file.zip"
这样,当它完成后就退出了,就像wget(估计你们也不知道吧)那样。另一种就是rpc server模式,特点就是,它启动之后什么都不干,然后等着从rpc接口添加任务,下载完也不退出,而是一直等着。对,就像迅雷干的那样,当然,它不会上传你硬盘上的数据。
aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D
。但是,其实*这个命令是不好的!不要使用这种启动方式。首先,用命令方式导致配置不方便修改保存,
-D
导致无法看到出错信息。$HOME/.aria2/aria2.conf
。嗯,我知道路由上这个地址是无法修改或者重启后会丢失的,那么你可以放到别的地方,然后 aria2c --conf-path=<PATH>
注意 <PATH>
填完整路径,因为鬼知道这个程序是从那个路径启动的。-D
(用于后台执行, 这样ssh断开连接后程序不会退出) 只有在确认OK之后在启动脚本中使用。aria2是没有图形界面的,已知相对好用的图形界面有:
- 另一个web前端webui-aria2
Use custom IP and port settings
按钮)不难看吗?)这两个东西上的配置在重启后都会失效! 使用配置文件保存您的设置
- windows下有Aria2c Remote Control
- iphone有Aria2 Download Manager
只有在确认配置无误后再加上
-D
选项请阅读出错信息!
1 2 3 4 5 6 7 8 | #允许rpc enable-rpc=true #允许所有来源, web界面跨域权限需要 rpc-allow-origin-all=true #允许非外部访问 rpc-listen-all=true #RPC端口, 仅当默认端口被占用时修改 #rpc-listen-port=6800 |
Initializing EpollEventPoll failed.
或相似错误, 在配置中加上 event-poll=select
1 2 | # token验证 rpc-secret=secret |
http://token:secret@hostname:port/jsonrpc
的地址格式设置secret.1 2 3 4 | #用户名 rpc-user=username #密码 rpc-passwd=passwd |
http://username:passwd@hostname:port/jsonrpc
的地址格式设置密码.对于RPC模式来说, 界面和后端是分离的, 只要给后端设置密码即可. 前端认证什么的是毫无意义的.
如果你比较新潮, 在YAAW中也可以用
ws://
为前缀,只用websocket连接aria2c, 如果你不知道websocket是什么. 那就算了.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #最大同时下载数(任务数), 路由建议值: 3 max-concurrent-downloads=5 #断点续传 continue=true #同服务器连接数 max-connection-per-server=5 #最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要 min-split-size=10M #单文件最大线程数, 路由建议值: 5 split=10 #下载速度限制 max-overall-download-limit=0 #单文件速度限制 max-download-limit=0 #上传速度限制 max-overall-upload-limit=0 #单文件速度限制 max-upload-limit=0 #断开速度过慢的连接 #lowest-speed-limit=0 #验证用,需要1.16.1之后的release版本 #referer=* |
aria2c只有在正常退出时(ctrl-c), 突然断电是无法保存进度的. 在第一次使用的时候会出现会话文件不存在的错误, 手动创建一个空文件即可. 如果您编写的是自动启动脚本, 在启动aria2前加上
touch aria2.session
这句命令.1 2 3 4 | input-file=/some/where/aria2.session save-session=/some/where/aria2.session #定时保存会话,需要1.16.1之后的release版 #save-session-interval=60 |
1 2 3 4 5 6 7 8 9 | #文件保存路径, 默认为当前启动位置 dir=/some/where #文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本 #disk-cache=0 #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?) #enable-mmap=true #文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长 #所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持 file-allocation=prealloc |
1 2 3 4 5 6 7 8 9 10 11 12 | #启用本地节点查找 bt-enable-lpd=true #添加额外的tracker #bt-tracker=<URI>,… #单种子最大连接数 #bt-max-peers=55 #强制加密, 防迅雷必备 #bt-require-crypto=true #当下载的文件是一个种子(以.torrent结尾)时, 自动下载BT follow-torrent=true #BT监听端口, 当端口屏蔽时使用 #listen-port=6881-6999 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #不确定是否需要,为保险起见,need more test enable-dht=false bt-enable-lpd=false enable-peer-exchange=false #修改特征 user-agent=uTorrent/2210(25130) peer-id-prefix=-UT2210- #修改做种设置, 允许做种 seed-ratio=0 #保存会话 force-save=true bt-hash-check-seed=true bt-seed-unverified=true bt-save-metadata=true #定时保存会话,需要1.16.1之后的某个release版本(比如1.16.2) #save-session-interval=60 |
手动访问你的JSON-RPC地址
http://hostname:port/jsonrpc?jsoncallback=1
如果没有返回, 请确认aria2是否启动以及连通性. 如果aria2在路由器后或没有公网IP, 请做好端口映射。1、支持http/https/ftp/bt协议
2、支持metalink3.0,metalink是一种可以将不同协议下载的同一文件集合到一起以达到最大下载稳定性和速度的东东。个人感觉这个似乎比迅雷支持不同网址下载同一文件似乎更高级些
3、支持分段下载和续传
4、支持通过http代理的ftp下载
5、可以作为守候进程运行
arch下安装:
pacman -S aria2
aria2c http://AAA.BBB.CCC/file.zip
aria2c -s 2http://AAA.BBB.CCC/file.zip 开2个线程下载
aria2c http://AAA.BBB.CCC/file.zipftp://DDD.EEE.FFF/GGG/file.zip 从不同的地址下载同一文件
aria2c http://AAA.BBB.CCC/file.zipftp://DDD.EEE.FFF/GGG/file.zip
aria2c -otest.torrent http://AAA.BBB.CCC/file.torrent 下载BT种子
aria2c –max-upload-limit 40K -Tfile.torrent 设定BT最大上传速度
aria2chttp://AAA.BBB.CCC/file.metalink
命令行下多线程下载工具:axel (prozilla下载工具因安全问题不推荐使用)
图形界面下载工具:d4x wxdownload
http://wiki.ubuntu.org.cn/Aria2
http://www.debugfs.com/?p=412
- 下载一个文件
aria2c http://host/image.iso
- 使用两个连接从一个源下载文件:
aria2c -x2 http://host/image.iso
Ctrl+c可以中止当前的下载,在同样的目录运行同样的命令可以继续原来的下载,你设置可以修改uri,如果他们指向的是同一个文件的话。 - 使用两个连接下载文件:
aria2c -s2 http://host/image.iso http://mirror1/image.iso http://mirror2/image.iso
注:如果命令中uri的数量多于-s的值,如本例所示,aria2将会首先使用前两个uri,将第3个uri作为候补,如果前两个有一个下载失败,就会启用第3个 - 从http或ftp服务器下载:
aria2c http://host1/file.zip ftp://host2/file.zip
- 从任意源进行并行下载:
aria2c -Z http://host/file1 file2.torrent file3.metalink
如果仅仅指定本地磁盘上的torrent文件或者metalink,是不需要-Z选项的,如:aria2c file1.torrent file2.torrent
- 从文件中读取目的文件,并行下载
aria2c -ifiles.txt -j5
注:-j参数指定了并发下载的数量,在输入文件中可以包含torrent文件和metelink
注:输入文件中支持添加参数,详见后续的“输入文件”章节 - 退出时保存出错/未完成的下载
aria2c -ifiles.txt --save-session=out.txt
当ctrl+c或者aria2自己退出时,所有的错误,未完成的下载信息会保存到out.txt中,但通过aria2.addTorrent 和 aria2.addMetalink XML-RPC方式增加的下载不会保存。
后续可以使用该文件继续未完成的下载:aria2c -iout.txt
aria2c -d /tmp http://localhost/file.gz
$ ls /tmp file.gz file.gz.aria2
file size known | D | D | D | O | X |
file exists | O | X | O | O | O |
ctrl exists | O | X | O | X | X |
file size match | O | - | X | - | - |
ACTION | R | S | A | B | C |
- “size known” 表示文件大小在开始下载前是已知的,如metalink可以提供文件大小
- “file size match”表示控制文件中的大小与远端(或metalink)的大小相同
- ‘D’表示不关心
- ACTION表示在上面的各种情况下aria2会采取的动作:
R
| 续传,但如果给定的URI不支持续传则会失败 |
S
| 重新开始下载 |
A
| 取消下载 |
B
| 如果–allow-overwrite=true则重新下载,否则取消 |
C
| 如果–allow-overwrite=true,则重新下载;如果本地文件大小与远程文件大小一致,则不再下载;如果–auto-file-renaming=true则重命名文件;其他情况取消下载 |
file exists | O | O | O | X |
ctrl exists | O | O | X | X |
file size match | O | X | - | - |
ACTION | R | A | B | S |
- 通过远程BitTorrent文件下载
aria2c http://site/file.torrent
- 通过远程BitTorrent文件下载,但在内存中处理
aria2c --follow-torrent=mem http://site/file.torrent
- 通过本地torrent文件下载:
aria2c -u40K /path/to/file.torrent
注:-u, –max-upload-limit用来指定最大上传速度
可以同时处理多个torrent文件aria2c /path/to/file1.torrent /path/to/file2.torrent
- 通过BitTorrent Magnet URI下载:
aria2c "magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C
1ED359BB46717D8C&dn=aria2" 注:需要将magnet的地址用单引号或者双引号引起来,因为里面包含’&'字符。当使用magnet时,强烈建议打开dht选项,–enable-dht
将metadata保存成.torrent文件aria2c --bt-save-metadata "magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C
1ED359BB46717D8C&dn=aria2" 这个命令会将metadata信息保存在248d0a1cd08284299de78d5c1ed359bb46717d8c.torrent文件中 - 自动调整peer节点数量当所有节点的整体下载速度低于某个值时,aria2可以临时增加节点数量来获取更快的下载速率
aria2c --bt-request-peer-speed-limit=200K file.torrent
- 开启DHT
aria2c --enable-dht http://site/file.torrent
注:在1.7.2版本后,dht选项是被默认打开的。当aria2只处理http/ftp下载时,不会打开dht选项。当第一个torrent开始下载时,aria2进行DHT功能的初始化,然后一直运行到aria2退出。 - 开启ipv6的DHT
aria2c --enable-dht6 --dht-listen-port=6881 --dht-listen-addr6=YOUR_GLOBAL_UNICAST_IPV6_ADDR --enable-async-dns6
注:如果aria2在build时没有使用c-ares,则不需要–enable-async-dns6。aria2在ipv4和ipv6的dht中共享一些端口 - 增加和删除tracker URI:下面这个例子将从file.torrent中移除所有的tracker的uri,然后使用”http://tracker1/announce” 和 “http://tracker2/announce”
aria2c --bt-exclude-tracker="*" --bt-tracker="http://tracker1/announce,http://tracker2/announce" file.torrent
- 加密在默认情况下,aria2可以接收加密/非加密的连接,并且会首先尝试加密握手,如果失败才会去使用传统的BitTorrent握手
下面这个例子中,aria2将只通过加密的握手接受与建立连接。aria2c --bt-require-crypto=true http://site/file.torrent
存在两种加密方式,头加密和全连接加密。如果两种都可以被peer提供,aria2将默认使用头加密方式。如果要使用全连接加密,可以使用:aria2c --bt-min-crypto-level=arc4 http://site/file.torrent
- 打印torrent文件内容
aria2c -S file.torrent
- 通过序号选择指定文件下载:
aria2c --select-file=1-4,8 -Tfile.torrent
注:index信息可以通过-S来获得 - 修改监听端口
aria2c --listen-port=6881-6883 file.torrent
注:请确保指定端口可以进行tcp的上行和下行通信 - 指定aria2完成下载后的停止条件
aria2c --seed-time=120 --seed-ratio=1.0 file.torrent
注:本例中,aria2会在下载完成后120分钟,或seed ratio达到1.0时退出程序 - 设置上传速度
aria2c --max-upload-limit=100K file.torrent
- Seeding已经下载完成的文件可以使用-V选择来播种下载完成的文件,它会首先对文件进行分片的hash校验
Seeding already downloaded file
如果可以确定下载文件的正确性,可以使用–bt-seed-unverified选项来跳过文件的校验环节aria2c --bt-seed-unverified -d/path/to/dir file.torrent
还可以同时播种多个torrent文件aria2c --bt-seed-unverified -d/path/to/dir file1.torrent file2.torrent
- 通过index指定文件名为了指定bt下载的文件名称,需要使用-S选线来查看torrent文件中的index信息,例如:
idx|path/length
===+======================
1|dist/base-2.6.18.iso |99.9MiB
---+----------------------
2|dist/driver-2.6.18.iso |169.0MiB ---+----------------------
下面的命令可以将dist/base-2.6.18.iso 保存为 /tmp/mydir/base.iso,同时将dist/driver-2.6.18.iso 保存成 /tmp/dir/driver.isoaria2c --dir=/tmp --index-out=1=mydir/base.iso --index-out=2=dir/driver.iso file.torrent
注:当对http uri中的torrent文件使用–index-out是不成功,它只对本地的torrent文件有效。aria2也不会去记忆–index-out选项内容,在每次的继续下载或播种时都需要手工指明,而且如果没有该选项,它也不会给用户任何提醒,所以需要注意。- 为进行文件预览进行分片优先下载优先下载torrent中所有文件的前1MB
aria2c --bt-prioritize-piece=head file.torrent
- 从远程metalink下载文件:
aria2c http://host/file.metalink
- 从远程metalink下载文件,但在内存中处理metalink:
aria2c --follow-metalink=mem http://host/file.metalink
- 通过本地metalink下载:
aria2c -t10 --lowest-speed-limit=4000 file.metalink
- 使用5个server下载
aria2c -C5 file.metalink
注:当使用metalink时,-s参数不再起作用,需要使用-C选项 - 通过多个本地metalink文件进行下载:
aria2c file1.metalink file2.metalink
- 打印metalink的内容
aria2c -S file.metalink
- 通过序号下载指定文件
aria2c --select-file=1-4,8 -Mfile.metalink
注:可以通过-S选择来打印metalink文件的内容 - 指定用户偏好从本地metalink下载文件
aria2c --metalink-location=JP,US --metalink-version=1.1 --metalink-language=en-US file.metalink
- 为所有协议(HTTP(S)/FTP)设定代理服务器
aria2c --all-proxy='http://proxy:8080' http://host/file
注:–all-proxy选项可以被特定的协议选项覆盖,如–http-proxy, –https-proxy 和 –ftp-proxy - 设置http代理
aria2c --http-proxy='http://proxy:8080' http://host/file
- 使用需要认证的代理
aria2c --http-proxy='http://proxy:8080' --http-proxy-user='username' --http-proxy-passwd='password' http://host/file aria2c --http-proxy='http://username:password@proxy:8080' http://host/file
注:username and password 需要进行%转码,如过username是’myid@domain’,则转码后的结果为:’myid@domain’。高级的http特性: - 导入cookie导入Mozilla/Firefox(1.x/2.x) 和 Netscape格式的cookie
aria2c --load-cookies=cookies.txt http://host/file
- 导入Firefox3格式的cookie
aria2c --load-cookies=cookies.sqlite http://host/file
- 被浏览器或其他程序继续下载
aria2c -c -s2 http://host/partiallydownloadedfile.zip
其他高级特性 - 下载速度限制
aria2c --max-download-limit=100K http://host/file
- 使用-V修复受损的下载
aria2c -V file.metalink
注:这个选项只适用于BitTorrent或者带有校验的metalink - 当下载速度下于某个特定值时放弃下载
aria2c --lowest-speed-limit=10K file.metalink
URI的参数化支持 - 可以使用大括号来表达一组列表
aria2c -P http://{host1,host2,host3}/file.iso
- 可以使用[]来表示一个数字序列
aria2c -Z -P http://host/image[000-100].png
注:当所有的URI指向不同的文件时,需要使用-Z选项 - 甚至可以指定步长
aria2c -Z -P http://host/image[A-Z:2].png
- 时间戳保留源文件时间戳
aria2c -R http://host/file.iso
- 下载完成后执行特定命令
aria2c --on-download-complete=COMMAND http://example.org/file.iso
另见:–on-download-error, –on-download-start 和 –on-download-stop,或者执行aria2c -h#hook - 写入/dev/null
aria2c -d /dev -o null --allow-overwrite=true http://example.org/file
–allow-overwrite=true是为了避免aria2重命名已有的/dev/null输入文件
输入文件中可以包括一系列的URI地址,也可以针对同一个资源设置多个URI:不同的URI写在一行并使用tab分割。
输入文件的每一行都被当作aria2的命令行参数,因此可以受到-Z和-P选项影响
另外,选项也可以在每行URI的后面设置,更详尽的描述可以在man page的输入文件部分得到。这种选择的含义与命令行选项的含义一致,不过只适用在他们跟随的那个URI上。
如下,一个uri文件名为uri.txt,其内容如下:http://server/file.iso http://mirror/file.iso dir=/iso_images out=file.img http://foo/bar
如果aria2使用 -i uri.txt -d /tmp, 那么file.iso就会被保存为/iso_images/file.img,它的下载源为http://server/file.iso 和 http://mirror/file.iso ;而bar文件则是从http://foo/bar 下载并且保存为 /tmp/bar。
Firefox 使用aria2作为下载工具 [本地/远程RPC版]
但是,可不可以以更“图形界面”的方式来查看/管理Aria2呢?当然
aria2除了作为命令行下载工具,还可以以后台服务方式运行,并监听6800(默认),接收使用JSON或XML数据格式的POST请求来管理Aria2,你可以添加,删除,暂停任务,查看下载进度等种种功能,同全功能的下载工具无异。
于是我们可以用这样的 Aria2 下载组合方式:
Aria2服务 + 图形管理界面 + Firefox + Flashgot + 一个程序作为Flashgot的自定义下载工具可通过RPC给aria2添加任务
1 Aria2服务:
aria2可以通过homebrew安装:
brew install aria2或者去官网下载osx 的编译版本
根据自己需要对~/.aria2/aria2.conf文件做配置(非必须)
然后要让其以后台方式运行:
复制代码
aria2c --enable-rpc --rpc-listen-all -D或者利用Launch Control(可免费无限试用)工具建立自动启动服务项(推荐):
Linux下根据相应的发行版,也可以写一个服务启动项。
2 图形管理界面
我们可以利用webui-aria2项目来管理aria2,就像其说明介绍的一样,若过你的aria2已经启动后台服务了,那么下载webui-aria2后,直接打开里面的index.html, 就可以跟一个下载工具一样进行管理了。(可以保存个书签,方便打开)
但是,如果到此为止的话,尽管在webui-aria2界面已经可以添加下载任务了,但是每次还要复制粘贴显然不方便,于是我们要继续接下来的配置
3 使用工具通过Aria2 的RPC接口快速添加下载任务
我分别用Python和Go写了这个工具,源码见帖子最后。
- Python版直接把代码保存成文件(例如aria2rpc),添加执行权,放到任意位置(例如$HOME/bin/aria2rpc)
- Go版可以把代码保存成文件自行编译,或者下载我编译的版本(密:cmom),也是添加执行权放到任意位置
4 使用Firefox的Flashgot扩展实现添加任务
我们为Flashgot添加一个自定义的下载工具,配置如下
这样以后点击下载链接时,在下载保存提示窗口中,我们选择用aria2rpc下载,就会将任务添加给aria2,
同时在webui-aria2界面立刻看到添加的下载任务
5 后记
使用这种组合的好处是更加“图形界面”化,其次可以方便的对任务进行管理,
同时,对aria2 的RPC调用支持也由原来的 特定网盘(离线)+userscript的固定组合扩展到任意下载链接
(当然,这个还没法自动添加磁力链接和BT文件,因为Flashgot不支持,所以也没有添加的意义,只能手动赋值粘贴了,不过貌似xThunder扩展支持,等以后再研究一下)
而且,使用该方法,aria2并不一定要运行在本地机器, 你可以将aria2 服务运行在NAS,路由器,android电视盒,服务器上,然后远程添加任务(flashgot里需要多添加一个选项指定远程的IP地址,
例如“ [--cookie COOKIE] [--dir FOLDER] [--output FNAME] --rpc http://123.123.101.101:6800/jsonrpc [URL]"这样配置,
webui-aria2也要在Settings -> Connection Settings里设置一下地址)
以上内容也同样适用于Linux系统
6 代码
Python
复制代码
#!/usr/bin/env python2 import json, urllib2, sys from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument('-c', '--cookie', help='use cookies', type=str, default='', metavar='COOKIES', dest='cookies') parser.add_argument('-o', '--output', help='output name', type=str, default='', metavar='NAME', dest='output') parser.add_argument('-d', '--dir', help='dest dir', type=str, default='', metavar='DIR', dest='dir') parser.add_argument('-r', '--rpc', help='aria2 rpc (http://localhost:6800/jsonroc)', type=str, default='http://127.0.0.1:6800/jsonrpc', metavar='URL', dest='rpc') parser.add_argument('URIs', nargs='+', help='URIs', type=str, default='', metavar='URI') opts = parser.parse_args() jsondict = {'jsonrpc':'2.0', 'id':'qwer', 'method':'aria2.addUri','params':[opts.URIs]} aria2optsDefault={ 'continue' :'true', 'max-connection-per-server' :'15', 'split' :'15', 'min-split-size' :'10M'} aria2opts = {} aria2opts.update(aria2optsDefault) if opts.output: aria2opts['out'] = opts.output if opts.dir: aria2opts['dir'] = opts.dir if opts.cookies: aria2opts['header'] = ['Cookie: {0}'.format(opts.cookies)] jsondict['params'].append(aria2opts) jsonreq = json.dumps(jsondict) print jsonreq urllib2.urlopen(opts.rpc, jsonreq)Go:
复制代码
package main import "encoding/json" import "fmt" import "flag" import "log" import "os" import "net/http" import "bytes" var rpc = flag.String("rpc", "http://127.0.0.1:6800/jsonrpc", "Aria2 rpc server address") var cookie = flag.String("cookie", "", "Cookies") var dir = flag.String("dir", "", "Saved dest directory") var out = flag.String("out", "", "Saved output file name") var split = flag.Int("split", 15, "One file N connections") var server = flag.Int("server", 15, "One server N connections") func main() { flag.Parse() URIs := flag.Args() if len(URIs) == 0 { flag.PrintDefaults() os.Exit(0) } params := makeParamsArry(URIs) jsonreq, err := makeJsonStruct(params) if err != nil { log.Fatal(err) } addTask(*rpc, jsonreq) } func makeParamsArry(uris []string) []interface{} { output := make([]interface{}, 0, 2) output = append(output, uris) opts := make(map[string]interface{}, 9) if *dir != "" { opts["dir"] = *dir } if *out != "" { opts["out"] = *out } if *cookie != "" { opts["header"] = []string{fmt.Sprintf("Cookie: %s", *cookie)} } opts["continue"] = "true" opts["max-connection-per-server"] = *server opts["split"] = *split opts["min-split-size"] = "5M" output = append(output, opts) return output } func makeJsonStruct(params []interface{}) ([]byte, error) { output := make(map[string]interface{}, 4) output["jsonrpc"] = "2.0" output["id"] = "qwer" output["method"] = "aria2.addUri" output["params"] = params return json.Marshal(output) } func addTask(url string, json []byte) { body := bytes.NewReader(json) resp, err := http.Post(*rpc, "text/plain", body) if err != nil { log.Fatal(err) } defer resp.Body.Close() }
from http://appwen.com/read.php?tid=3393
---------
aria2
aria2 是一个自由、开源、轻量级多协议和多源的命令行下载工具。它支持 HTTP/HTTPS、FTP、SFTP、 BitTorrent 和 Metalink 协议。aria2 可以通过内建的 JSON-RPC 和 XML-RPC 接口来操纵。aria2 下载文件的时候,自动验证数据块。它可以通过多个来源或者多个协议下载一个文件,并且会尝试利用你的最大下载带宽。debian下安装apt-get install aria2
下载多个文件,从列表中aria2c -i down.txt将要下载的URL,输入down.txt中,实现自动下载-c 断点续传 -i 参数表示读取外部链接文件 -x -x2表示增加的线程数
注意:当源地址存在诸如 &, * 等 shell 的特殊字符,请使用单引号或双引号把 URI 包含起来。1、Download from WEB # aria2c -c -s 5 http://example.org/mylinux.iso -c : 断点续传 -s : 使用线程数 2、Download from 2 sources # aria2c http://a/f.iso ftp://b/f.iso 3、Download using 2 connections per host # aria2c -x2 http://a/f.iso 4、BitTorrent Magnet URI # aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C' 5、Metalink # aria2c http://example.org/mylinux.metalink 6、Download URIs found in text file # aria2c -i uris.txt 7、BT # aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torrent # aria2c http://mirrors.163.com/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.torrent
Aria2整合KODExplorer,实现自建离线下载网盘
先安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
这里假设你的lnmp都已经安装好了
安装 Aria2
yum install wget -y&&wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
启动:service aria2 start
停止:service aria2 stop
重启:service aria2 restart
查看状态:service aria2 status
配置文件:/root/.aria2/aria2.conf (配置文件包含中文注释,但是一些系统可能不支持显示中文)
默认密匙:doub.io
下载目录:/usr/local/caddy/www/aria2/Download
下载AriaNg前端面板
链接:https://github.com/mayswind/AriaNg/releases/download/0.2.0/aria-ng-0.2.0.zip
解压压缩包,将AriaNg面板的所有文件上传到你的网站根目录。
现在打开你的网站地址应该就能看到AriaNg的面板页面了。
这里要设置秘钥对接.
或者可以使用yaaw,这块相关的工具很多-
https://chrome.google.com/webstore/detail/yaaw-for-chrome/dennnbdlpgjgbcjfgaohdahloollfgoc
下载KODExplorer
链接:https://github.com/kalcaddle/KODExplorer/archive/master.zip
新建cloud文件夹,下载入其中.
--------
Aria2-全能型下载利器(上)Linux服务端安装
Aria2-全能型下载利器(下)AriaNG面板安装教程
使用aria2,自建离线下载服务器
寻找类似的项目及初步构思
Aria2 已经做好了我想做的一切
一键安装Aria2+Yaaw+FileManager实现BT磁力下载,并在线观看
关于BT
下载的教程已经很多了,特别是Aria2
,看见小Z
大佬写了个Aria2
+Yaaw
+FileManager
一键包,比一般的Aria2
面板配置要简单,挺方便的。
简介
Aria2
是一个轻量级的多协议和多源命令行 下载工具。它支持HTTP
/HTTPS
,FTP
,SFTP
,BitTorrent
和Metalink
。aria2
可以通过内置的JSON-RPC
和XML-RPC
接口进行操作。YAAW
则是一个管理aria2
的WEB
接口,两者结合轻松实现离线下载,在文章《CentOS安装aria2 + yaaw实现离线下载》分享过手动配置方法,为了简化流程,写了一个一键脚本,方便部署。File Manager
是一个基于GO
的轻量级文件管理系统支持登录系统 角色系统、在线PDF
、图片、视频浏览、上传下载、打包下载等功能。Github地址:https://github.com/helloxz/aria2
功能
- 支持多种
Linux
发行版 - 一键安装
Aria2
+Caddy
+YAAW
+FileManager
- 文件管理+离线下载+在线播放
安装
系统要求:CentOS 6
/7 X64
、Debian 8+ X64
和Ubuntu 16+ X64
,不支持32
位系统。运行以下命令:
#Centos系统
yum -y install wget unzip
#如果是Debian or Ubuntu系统
apt-get install -y wget unzip
#下面的命令通用,直接复制
wget https://github.com/helloxz/aria2/archive/master.zip
unzip master.zip && cd aria2-master && chmod u+x *.sh && ./install_aria2.sh
安装过程中,按要求输入用户名、密码及Aria2
授权令牌。配置YAAW
访问YAAW
下载面板地址:http://IP:6080
,,输入您刚刚设置的用户名、密码,就可以看到YAAW
,再点击右上角Setting
按钮,在JSON-RPC Path
那里输入安装完后显示的RPC
地址:http://token:abc123@IP:6800/jsonrpc
,然后保存即可。使用方法
点击YAAW
面板的左上角Add
添加任务并下载,再通过访问http://IP:6080/admin
进入到FileManager
文件管理器,进入Down
文件夹,找到下载的东西,就可以在线查看或者观看了。注意,和Down
同一个文件夹的文件请不要随意删除和修改,以免出现异常。相关命令
#启动
/data/aria2/aria2.sh start
#停止
/data/aria2/aria2.sh stop
#重启
/data/aria2/aria2.sh restart
#Caddy server配置文件
/data/aria2/caddy.conf
#Aria2配置文件
/data/aria2/aria2.conf
#离线下载目录
/data/aria2/download
#日志目录
/data/aria2/aria2.log
/data/aria2/caddy.log
常见问题
#YAAW提示Error: Internal server error错误?
原因一:RPC地址错误,安装完成后会提示RPC地址,请确保填写正确。
原因二:输入netstat -apn|grep aria2c查看进程,如果没有任何信息,可以确定Aria2服务未启动,输入命令nohup aria2c --conf-path=/data/aria2/aria2.conf > /data/aria2/aria2.log 2>&1 &重新启动服务,如果依然不行,请查看错误日志/data/aria2/aria2.log
原因三:防火墙未放行6800端口,请自行放行下端口或关闭服务器防火墙。
#重启了服务器就打不开了?
脚本并未设置开机启动,重启服务器后请输入/data/aria2/aria2.sh start来运行服务。
#Debian/Ubuntu系统,提示安装成功,但是打不开?
Debian/Ubuntu并未自动放行端口,请放行6080/6800两个端口,或者直接关闭防火墙。
(
一键安装Aria2 + YAAW实现离线下载
aria2是一个轻量级的多协议和多源命令行 下载工具。它支持HTTP / HTTPS,FTP,SFTP, BitTorrent和Metalink。aria2可以通过内置的 JSON-RPC和XML-RPC接口进行操作。
YAAW则是一个管理aria2的WEB接口,两者结合轻松实现离线下载,在文章《CentOS安装aria2 + yaaw实现离线下载》分享过手动配置方法,为了简化流程,写了一个一键脚本,方便部署。
功能与特点
支持多种不同Linux系统
一键安装Aria2 + Caddy + YAAW
使用FileFileManager作为文件管理器
离线下载 + 视频在线播放
安装
直接复制下面的命令,一行一个,根据提示完成操作。
#Centos用户
yum -y install wget unzip
#如果是Debian or Ubuntu用户
apt-get install -y wget unzip
#下面的命令通用,直接复制
wget https://github.com/helloxz/aria2/archive/master.zip
unzip master.zip && cd aria2-master && chmod u+x *.sh && ./install_aria2.sh
请根据自己的系统输入选项进行安装,系统不要选错了,否则无法正常使用。比如我的系统是CentOS 7,选择1
根据提示进一步输入信息,注意:Aria2授权令牌建议用字母 + 数字组合,最好不要含有特殊符号,尤其是@之类的符号,以免出现不必要的问题。
安装完成后会看到如下信息,建议将信息保存到一个别人不易发现的地方,待会儿还需要使用。
开始使用
安装完成后输入http://IP:6080进行访问,输入您刚刚设置的用户名、密码,就可以看到YAAW啦。)
https://github.com/ziahamza/webui-aria2
-----------------
Aria2+AriaNg+Rclone+Google Drive离线下载安装教程。
目录
来源https://www.yuque.com/dubstep/gm3uwo/ghpddr
前言
随着Aria2的大火,Aria2+AriaNg+Rclone+Google Drive模式的离线下载更成为各大博主的主流下载方式,博主把优化过的教程发出来。本教程主要通过AriaNg+Nginx提供Web界面,Aria2下载资源,下载后通过Rclone把资源自动上传到GoogleDrive,以达到离线下载资源的目的。
注:网上的大部分教程有严重的BUG,下载到VPS的文件并不能自动删除,当下载到硬盘满了之后就无法再继续运行,而且会上传.Aria2后缀文件碎片,本教程经过二次修改后脚本采用移动方式上传到网盘。
环境要求
- 系统支持:CentOS6+ / Debian6+ / Ubuntu14+
- 一台KVM/OpenVZ架构的VPS
- 谷歌网盘(其他网盘也可以,但需要Rclone支持)
推荐使用CentOS 7,本教程也以CentOS 7+谷歌无限团队盘来演示,若使用其他系统,以下某些命令会出现不兼容,请自行修改为对应系统的命令。
以下命令行建议一条一条输入
安装必要组件
首先更新系统并安装必要组件,此处为安装Nginx Web服务器
yum -y update
yum -y install epel-release
yum -y install wget git unzip gcc gcc-c++ openssl-devel nginx
安装Nginx
yum -y install nginx
启动nginx并设置开机自启动
systemctl start nginx #启动Nginx
systemctl enable nginx.service #设置开机启动Nginx
关闭防火墙并关闭开机启动
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld.service #静止开机启动
安装Aria2
下载Aria2脚本并运行脚本。
cd ~ #回到根目录
wget -N https://git.io/aria2.sh && chmod +x aria2.sh && bash aria2.sh #下载Aria2脚本并运行脚本
运行脚本后会出现脚本操作菜单,选择并输入1回车开始安装
安装成功后得到以下Aria2配置信息,并用记事本记录
设置自动更新BT-Tracker,后台会定期更新trackerslist,一般情况下会加强BT下载效果(若不需要,请跳过次步骤)
再次执行菜单脚本
bash aria2.sh
输入12回车
安装AriaNg
AriaNg是一个前端(HTML+JS静态)控制面板,不需要和Aria2(后端/服务端)放在一个服务器或者设备中,你甚至可以只在服务器上面搭建Aria2后端,然后访问别人建好的AriaNg前端面板,也可以远程操作Aria2后端!
AriaNg官方演示页面:http://ariang.mayswind.net/latest
创建Ariang目录
mkdir -p /data/www/ariang #创建一个Ariang目录
cd /data/www/ariang #进入这个目录
下载并解压AriaNg文件,这段代码会自动检测并下载最新版本(代码较长,请复制完整)
Ver=$(wget --no-check-certificate -qO- https://api.github.com/repos/mayswind/AriaNg/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g;s/tag_name: //g') && echo ${Ver}
如果上面自动检测最新版本的代码返回空白或者错误,那么请访问下面网址来查看最新版本号
https://github.com/mayswind/AriaNg/releases/latest** **
例如手动获取的版本号是 1.1.4,那么手动执行命令: Ver=1.1.4,然后继续下面步骤即可
下载并解压AriaNg文件(代码较长,请复制完整)
wget -N --no-check-certificate "https://github.com/mayswind/AriaNg/releases/download/${Ver}/AriaNg-${Ver}.zip" && unzip AriaNg-${Ver}.zip && rm -rf AriaNg-${Ver}.zip
配置Nginx虚拟主机
创建虚拟主机配置文件
yum install vim #安装vim编辑器
cd /etc/nginx/conf.d
touch ariang.conf #创建配置文件
vim ariang.conf #编辑配置文件
按键盘I键或Insert键进入修改模式,复制粘贴以下配置(复制粘贴时请仔细对照一下,有时候可能粘贴不全)
server {
listen 80;
server_name IP;
location / {
root /data/www/ariang;
index index.html index.htm;
}
}
把以上配置中server_name右边的IP改成你自己服务器的IP地址或域名
保存并退出
:wq
现在可以使用nginx -t测试一下配置文件是否修改正确
更新nginx配置后,需要重启nginx
systemctl reload nginx
关闭SELINUX
vim /etc/selinux/config
按键盘I键或Insert键进入修改模式
找到SELINUX=enforcing这行,并用#注释掉,并在下一行加上SELINUX=disabled
#SELINUX=enforcing
SELINUX=disabled
保存并退出
:wq
重启系统
reboot
重启好后访问IP地址或域名即可看到AriaNg Web界面,并按照下图1-4步骤填写Aria2 RPC密钥(该密钥为前面安装Aria2时生成配置信息中的密码)
安装Rclone并挂载GoogleDrive
安装Rclone
cd ~ #回到根目录
下载脚本并执行
curl https://rclone.org/install.sh | sudo bash
如果系统为OpenVZ系统,则使用以下脚本安装
curl https://rclone.org/install.sh | bash
配置Rclone
rclone config
[root@localhost ~]# rclone config
2020/01/03 02:41:17 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>n
name> GD(该名称为Rclone挂载的名称可以随便填,但要记住,后面会用到)
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Citrix Sharefile
\ "sharefile"
9 / Dropbox
\ "dropbox"
10 / Encrypt/Decrypt a remote
\ "crypt"
11 / FTP Connection
\ "ftp"
12 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
13 / Google Drive
\ "drive"
14 / Google Photos
\ "google photos"
15 / Hubic
\ "hubic"
16 / JottaCloud
\ "jottacloud"
17 / Koofr
\ "koofr"
18 / Local Disk
\ "local"
19 / Mail.ru Cloud
\ "mailru"
20 / Mega
\ "mega"
21 / Microsoft Azure Blob Storage
\ "azureblob"
22 / Microsoft OneDrive
\ "onedrive"
23 / OpenDrive
\ "opendrive"
24 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
25 / Pcloud
\ "pcloud"
26 / Put.io
\ "putio"
27 / QingCloud Object Storage
\ "qingstor"
28 / SSH/SFTP Connection
\ "sftp"
29 / Transparently chunk/split large files
\ "chunker"
30 / Union merges the contents of several remotes
\ "union"
31 / Webdav
\ "webdav"
32 / Yandex Disk
\ "yandex"
33 / http Connection
\ "http"
34 / premiumize.me
\ "premiumizeme"
Storage> 13(由于Rclone官方会更新,13并不一定是Google Drive,所以填入需要配置的网盘对应的序号即可)
See help for drive backend at: https://rclone.org/drive/
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a string value. Press Enter for the default ("").
client_id>直接回车
Google Application Client Secret
Setting your own is recommended.
Enter a string value. Press Enter for the default ("").
client_secret>直接回车
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope>1
ID of the root folder
Leave blank normally.
Fill in to access "Computers" folders (see docs), or for rclone to use
a non root folder as its starting point.
Note that if this is blank, the first time rclone runs it will fill it
in with the ID of the root folder.
Enter a string value. Press Enter for the default ("").
root_folder_id>直接回车
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file>直接回车
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Use auto config?
Say Y if not sure
Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=2024815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=eSMtROkBwv7nTw36Wg(****复制这段网址到浏览器中,最后会得到一段密钥并复制粘贴到下面****)
Log in and authorize rclone for access
Enter verification code> 4/vAGEnm1Vm2O7Ba************************
Configure this as a team drive?
y) Yes
n) No
y/n>y
Fetching team drive list...
Choose a number from below, or type in your own value
1 / dd
\ "0AAk7UDUUk9PVA"
Enter a Team Drive ID> 1
----------------------------
[GD]
type = drive
scope = drive
token = {"access_token":"ya29.Il4B97vj2p_*****************","token_type":"Bearer","refresh_token":"1//0eINZ8S2xdmkPdzFk7-*","expiry":"2020-0103T03:44:19.994344966-05:00"}
team_drive = 0AAk7UoZt
-----------------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
GD drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>q
修改上传脚本
修改我们的上传脚本中的Rclone名字和需要上传到网盘的文件夹
vim /root/.aria2/autoupload.sh #编辑上传脚本
按键盘I键或Insert键进入修改模式
修改上传脚本的内容,博主修改为Google Drive的文件夹Download,这个文件夹必须存在,如果不存在请先在Google Drive中自行创建,不然会出错。
name='GD' #配置Rclone时的name
folder='/Download' #网盘里的文件夹,留空为网盘根目录
保存并退出
:wq
修改Aria2配置文件
打开配置文件
vim /root/.aria2/aria2.conf
按键盘I键或Insert键进入修改模式
修改为以下内容
- 在on-download-complete=/root/.aria2/delete.aria2.sh前面加上#号
- 把#on-download-complete=/root/.aria2/autoupload.sh前面#号去掉
# 下载完成后执行的命令
# 删除.aria2文件
#on-download-complete=/root/.aria2/delete.aria2.sh
# 调用 rclone 上传(move)到网盘
on-download-complete=/root/.aria2/autoupload.sh
保存并退出
:wq
然后重启Aria2
service aria2 restart
到此为止离线下载已经完美搞定,输入服务器网址或域名到AriaNg Web页面进行下载资源,下载完成后直接到Google Drive中进行查看。
总结
Aria2使用说明
- 菜单:bash /root/aria2.sh
- 启动:/etc/init.d/aria2 start
- 停止:/etc/init.d/aria2 stop
- 重启:/etc/init.d/aria2 restart
- 查看状态:/etc/init.d/aria2 status
- 配置文件:/root/.aria2/aria2.conf
- 下载目录:/root/Download
Nginx使用说明
- 查看服务状态:systemctl status nginx
- 启动服务:systemctl start nginx
- 停止服务:systemctl stop nginx
- 重新启动服务:systemctl restart nginx 或 systemctl reload nginx
- 设置开机自动启动:systemctl enable nginx
- 关闭开机自动启动:systemctl disable nginx
- 查看所有已启动的服务:systemctl list-units --type=service
- 默认配置文件:/etc/nginx/nginx.conf
- AriaNg主机配置文件:/etc/nginx/conf.d/ariang.conf
- 默认目录:/usr/share/nginx/html
- 访问日志:/var/log/nginx/access.log
- 错误日志:/var/log/nginx/error.log
from https://github.com/dubstep1212/Aria2Download
------------------------------------------
下载工具aria2的Web客户端Glutton
Glutton是国人基于流行的开源下载工具aria2编写的Web 客户端, 使用了 Vue.js + webpack + vue-loader + ES2015 的架构。适配移动端浏览器,支持拖拽上传种子创建 BT 任务,任务按创建时间来排列。 此外还整合了相关字幕下载功能,先去伪射手网(http://assrt.net/usercp.php)注册,并获取免费 API 密钥, 然后在每一条下载后面,都可以看到一个 S 图标按钮,点击就能自动搜索对应字幕,并且还可以选择不同字幕,并且自动添加进 aria2 中进行下载。
试用:http://nemoalex.github.io/glutton/
github.com/NemoAlex/glutton
-----------
安装Aria2下载工具
因为aria2本身是一款命令行下载工具,安装搭建需要花费不少功夫,对于一些小白同学来说绝对是个麻烦事。所以小帮特意给大家找了一款一键搭建启动aria的小工具,让你轻松松在电脑端使用aria2。
直接利用”Aria2 Win通用启动器“这款工具来进行一键搭建启动Aria2。打开Aria2启动器,先更换自己的下载路径,然后给Aria2安装一个webUI界面(因为aria2本身是命令行下载工具如果不给打安装操作界面就只能用命令来操作)。
安装本地webUI之后,你的桌面会出现两个快捷图标,这是两个不同的操作控制台,本教程使用:AriaNgUI。然后点击启动按钮。(每次使用都需要启动这个工具,可以设置开机自启)
打开AriaNgUI这个图标(本身是一个HTML文件),会进入网页版的AriaNg控制台。
我们需要修改一些AriaNg的设置。点击AriaNg设置,选择RPC配置,然后按照下图的内容将以下信息填入:
修改好之后点击重新加载页面。
重新加载页面之后,Aria2的状态会显示”已连接“,这说明我们对Aria2的搭建启动就完成了。
点击”使用Aria2下载”,会直接进入Aria2 RPC 配置界面,将以下配置信息填写进去即可:
下载路径和密钥和自己最开始设置的保持一致即可。点击确定按钮,我们就能在AriaNg的下载控制台界面看到正在下载的信息了。
-----------------------------------
Aria2
破解百度网盘下载限速,不少工具内核其实是用的就是Aria2。
Aria2 是一个轻量级多协议和多源 命令行 下载实用工具。它支持 HTTP / HTTPS, FTP, SFTP, bt 和 Metalink。Aria2 没有 GUI 图形界面,只有粗糙的命令行界面。这也许是Aria2不受欢迎或者不被大多数知道的原因吧。
只有命令行,虽然有像YAAW / Aria2 WebUI 的网页版 Aria2 操作界面,但还是需要自己研究配置,对于新手来说有一些难度。我们当然最喜欢的还是方便快捷的gui软件版了,Persepolis Download Manager就是一款Aria2的图形gui程序。
Aria2图形界面
Persepolis Download Manager封装了Aria2,无需你做任何配置,你就像用迅雷、IDM 等下载工具一样的使用即可,而不必再对着命令行发愁。
(简单介绍一下aria2
Aria2 是一个轻量级多协议和多源 命令行 下载实用工具。它支持 HTTP / HTTPS, FTP, SFTP, bt 和 Metalink。通过内置 Aria2 可以操作 json – rpc 和 xml – rpc。对,Aria2 没有 GUI 图形界面,只有粗糙的命令行界面!但这也正是 Aria2 之轻快好省所在。
轻:绿色便携,不写注册表,无 GUI,占用小,全速下载时占用大约为 10M。
快:下载速度蛮不错,很多时候都能达到满速。
好:多协议支持,多脚本/扩展,多平台,完全免费,可定制型极强
省:不仅占用小,存储空间也小,不到 5M。)
-------------------------------------
免费 “神器级” 下载工具,直接接管浏览器下载:Aria2 Explorer
轻量高效的开源下载工具 Aria2 因仅仅是一个内核(命令行),对于大多数用户来说直接使用比较困难,所以目前就有各种 GUI 界面版本。但是大多数基于 Aria2 的下载工具很多都没有浏览器扩展支持,也就是复制下载地址后,还得手动打开下载工具进行下载。
而今天推荐的这款「Aria2 Explorer」是基于 Aria2 的浏览器扩展插件,安装好可以搭配 Aria2 下载工具实现自动识别下载任务,方便用户对 Aria2 进行操作和管理。
使用说明
项目作者提供了 Aria2 下载工具的后台管理运行「Aria2 Manager」和浏览器的扩展「Aria2 Explorer」插件。
👉 1.首先下载你需要的「Aria2 Manager」版本,这里推荐用完全版,下载后解压即可直接使用。
版本说明:
对于重度用户:推荐下载增强版(付费),功能更多,体验更好,一键安装,自动更新,省时省力。
对于小白用户:如果你只安装了 Aria2 Explorer,请下载 Setup 安装包,完成安裝后即可使用所有 Aria2 下载功能。
对于初级用户:请下载完全版,其中已经包含 aria2c.exe 最新版和相关配置文件。只需解压并运行 Aria2Manager.exe,即可使用默认 RPC 设置通过扩展下载网络资源。
对于DIY用户:请下载独立版,将 Aria2Manager.exe 解压到 aria2c.exe 所在的目录,并将你的配置文件重命名为 aria2.conf。
👉 2.安装「Aria2 Explorer」浏览器扩展插件,目前支持 Chrome、Edge 和其它基于 Chromium 的浏览器。
安装好后可以进入扩展配置页面设置功能,包括右键菜单、下载拦截设置,可设置拦截设定的 ≥ 文件大小、拦截磁力链接、监测 Aria2 下载状态、扩展名白名单 / 黑名单;网址白名单 / 黑名单等。
设置完毕后,现在点击网页的下载链接就会自动识别到 Aria2 里面进行下载了。下载协议支持常见的 HTTP / FTP / BT / 磁力 / BT / Magnet link,你也可以对每个协议进行功能设置,例如可以给 BT 设置 Tracker 服务器地址。
功能特色
自动拦截浏览器下载任务
根据预设的 URL 模式 (Pattern) 自动选择不同的 Aria2 RPC 服务端和下载目录
内置 Aria2 前端:AriaNG 增强版,多种呈现方式:弹窗,新标签,新窗口
所有配置云端同步
中英双语支持
Aria2下载状态监测
右键菜单批量导出网页资源(图片·音频·视频·磁力链接)
接受来自其他扩展的下载请求
选项配置页面快捷键(保存:Alt+S 重置:Alt+R 下载:Alt+J 上传:Alt+U)
支持无法连接 Aria2 时,直接通过浏览器下载网络链接
下载地址
项目地址:
https://github.com/alexhua/Aria2-Manager
Aria2 Manager(管理):
https://www.123pan.com/s/c8zA-zTVN3.html
Aria2 Explorer(扩展):
https://microsoftedge.microsoft.com/addons/detail/jjfgljkjddpcpfapejfkelkbjbehagbh
-----------
Aria2c web实现 基于WebSocket
Aria2是一个非常成熟的下载程序,基于命令行调用。它也提供上RPC、WebSocket的调用方式。下面我会通过前端WebSocket调用的方式实现一个简单的下载功能
- 首先下载对应的Aria2可执行文件,并且命令行启动。aria2c默认会监听本地6800端口
1 | aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all |
- 前端建立WebSocket连接,地址是:
ws://localhost:6800/jsonrpc
,具体代码
1 | <!DOCTYPE html> |
------------------------
http://briteming.blogspot.com/2017/11/aria2-ultra-fast-download-utility.html
http://briteming.blogspot.com/2016/07/yaaw.html
http://briteming.blogspot.com/2012/10/ubuntuaria2.html