|
本帖最后由 dirsetzhang 于 2016-12-7 01:08 编辑
声明
我只是个网络搬运工,不是大神,真正的大神是本论坛的fastpace还有github上的binux和acgotaku
。这篇文章虽说是原创,但我认为只是把各位大神的帖子综合,整理和测试了一下。我自己是伸手党,但是特别佩服fastpace大神写的几个原创帖子, 所以跑来注册个号,把这篇文章发上来。很多都是大神们帖子中的内容,请你们不要怪罪。
本来心血来潮注册个号,结果太激动,第一次忘记输入邮箱了,结果有花了1元才搞定,当是给本论坛的赞助吧。如果有需要,过几天我把我设置的Openvirtual**也整理一下发过来,但一定是全英文的。没时间翻译呀。原谅我
秉持github和本论坛开源共享的精神,本帖没有设置任何限制,如果有链接无法访问,请大家自行翻 墙。
正题
所有代码都在我自己的WRT1900ACS v2上测试过,注意这个路由是ARM的。其他潜水党先分清Atheros芯片,MIPS芯片还是ARM芯片的路由。
可能用到的工具,
1、要求
为 Optware/Entware-ng packages 创建磁盘空间
安装Optware/Entware-ng的先决条件是可读写 /opt partition/磁盘空间. 所需的空间大小依据所安装的包的大小和数量。 下面是三个选项。第四个应该是 SDmod.
选项一 /jffs
根据你的路由器和选择的固件版本,你何能会有足够的空间在 /jffs 上.
- ~ # mkdir /jffs/opt
- ~ # mount -o bind /jffs/opt /opt
复制代码 更多关于jffs的信息 jffs2
使用命令 df 来查看可被/opt用的 /jffs 磁盘空间
选项二 外置优盘或者硬盘
外置存储设备启动,分区,格式化和加载的信息,参见这个链接 USB storage 。注意:/opt 必须加载并连接在 ext2/3 才能被Optware/Entware-ng安装器使用。
选项三 CIFS
具体操作请参见 Optware on CIFS - Partition in a file.
安装Optware/Entware-ng
打开telnet/ssh 控制台登陆输入用户和密码,然后输入以下命令(用户名必是root,密码是路由管理员密码)
ARM芯片路由
- wget -O - http://pkg.entware.net/binaries/armv7/installer/entware_install.sh | sh
复制代码 MIPS芯片路由
- wget -O - http://pkg.entware.net/binaries/mipsel/installer/installer.sh | sh
复制代码 Atheros芯片路由
- wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d '\r' > /tmp/optware-install.sh | sh
复制代码
2、安装aria2
首先telnet或者ssh登录到路由器。
分别执行如下命令
- opkg update
- opkg install aria2
复制代码 从本地文件安装或更新新版本
- opkg remove aria2
- opkg install /file_route.ipk
复制代码
3、配置aria2
我比较倾向于将配置和下载内容分开了。创建配置目录和配置文件:
aria2.conf的内容如下
Aria2 配置说明
完整选项说明请参考 Aria2 Manual
参数 --dir --input-file --save-session 根据实际情况修改路径
配置示例, 可根据需要修改各项参数
## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ##
## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ##
## 文件保存相关 ##
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=~/downloads
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=none
# 断点续传
continue=true
## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=1
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=5
# 整体下载速度限制, 运行时可修改, 默认: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
## 进度保存相关 ##
# 从会话文件中读取下载任务
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
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=<TOKEN>
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0.5
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
几个主要的参数修改成你自己的便可以,比如
#用户名
rpc-user=user
#密码
rpc-passwd=pwd
dir=/mnt/sda1/Downloads/
input-file=/mnt/sda1/Downloads/aria2.session
save-session=/mnt/sda1/Downloads/aria2.session
log=/mnt/sda1/Downloads/aria2.log
#下载速度限制
max-overall-download-limit=150K
#上传速度限制
max-overall-upload-limit=50K
#单文件下载速度限制
max-download-limit=150K
#单文件速度限制
max-upload-limit=20K
在移动硬盘创建下载目录和文件
mkdir /mnt/sda1/Downloads/
touch /mnt/sda1/Downloads/aria2.session
4、创建启动脚本
在telnet/ssh 控制台输入
- cat > /jffs/aria2-config/run.sh << EOF
- #!/bin/sh
- if [ -d "/mnt/sda1/downloads/" ]; then
- echo "restarting aria2 ..."
- iptables -D INPUT -p tcp --dport 48028 -j ACCEPT
- iptables -I INPUT -p tcp --dport 48028 -j ACCEPT
- iptables -D INPUT -p udp --dport 48028 -j ACCEPT
- iptables -I INPUT -p udp --dport 48028 -j ACCEPT
- iptables -D INPUT -p tcp --dport 6800 -j ACCEPT
- iptables -I INPUT -p tcp --dport 6800 -j ACCEPT
- killall aria2c
- aria2c --conf-path=/jffs/aria2-config/aria2.conf -c -D
- else
- echo /mnt/sda1/downloads/ not mount!
- fi
- EOF
复制代码 上述6800是管理端口,48028是aria2的监听端口,都开放这些端口。
5、启动测试
运行:
- sh /jffs/aria2-config/run.sh
复制代码 然后tail一下日志文件,看看是否有错误
- tail -f /mnt/sda_part1/aria2/aria2-log.log
复制代码 用浏览器打开
http://路由器IP:6800/jsonrpc?jsoncallback=1
如果返回内容如下,就表示成功了。
1({"id":null,"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid Request."}})
成功后就可以将- sh /jffs/aria2-config/run.sh
复制代码 添加到DDwrt的启动项了
6、管理和使用
网页版(能下载到本地)http://binux.github.io/yaaw/
windows下有Aria2c Remote Control
iphone有Aria2 Download Manager
扩展(需要在chrome或者firefox上安装插件)
百度离线
https://github.com/acgotaku/BaiduExporter
迅雷离线
https://github.com/binux/ThunderLixianExporter
7、参考
https://www.right.com.cn/forum/thread-142169-1-1.html
http://blog.binux.me/2012/06/aria2_yaaw/
https://www.dd-wrt.com/wiki/index.php/Optware
https://aria2.github.io/manual/en/html/aria2c.html
http://aria2c.com/usage.html
|
|