找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7291|回复: 0

【伸手党原创】DD-WRT实现脱机aria2

[复制链接]
本帖最后由 dirsetzhang 于 2016-12-7 01:08 编辑

声明


我只是个网络搬运工,不是大神,真正的大神是
本论坛的fastpace还有github上的binux和acgotaku

。这篇文章虽说是原创,但我认为只是把各位大神的帖子综合,整理和测试了一下。我自己是伸手党,但是特别佩服fastpace大神写的几个原创帖子, 所以跑来注册个号,把这篇文章发上来。很多都是大神们帖子中的内容,请你们不要怪罪。


本来心血来潮注册个号,结果太激动,第一次忘记输入邮箱了,结果有花了1元才搞定,当是给本论坛的赞助吧。如果有需要,过几天我把我设置的Openvirtual**也整理一下发过来,但一定是全英文的。没时间翻译呀。原谅我


秉持github和本论坛开源共享的精神,本帖没有设置任何限制,如果有链接无法访问,请大家自行翻      墙。  




正题


所有代码都在我自己的WRT1900ACS v2上测试过,注意这个路由是ARM的。其他潜水党先分清Atheros芯片,MIPS芯片还是ARM芯片的路由。

可能用到的工具,
putty或者kitty 和 winscp

1、要求
为 Optware/Entware-ng packages 创建磁盘空间
安装Optware/Entware-ng的先决条件是可读写 /opt partition/磁盘空间. 所需的空间大小依据所安装的包的大小和数量。 下面是三个选项。第四个应该是 SDmod.

选项一 /jffs
根据你的路由器和选择的固件版本,你何能会有足够的空间在 /jffs 上.
  1. ~ # mkdir /jffs/opt
  2. ~ # 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芯片路由
  1. wget -O - http://pkg.entware.net/binaries/armv7/installer/entware_install.sh | sh
复制代码
MIPS芯片路由
  1. wget -O - http://pkg.entware.net/binaries/mipsel/installer/installer.sh | sh
复制代码
Atheros芯片路由
  1. wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d '\r' > /tmp/optware-install.sh | sh
复制代码

2、安装aria2
首先telnet或者ssh登录到路由器。
分别执行如下命令
  1. opkg update
  2. opkg install aria2
复制代码
从本地文件安装或更新新版本
  1. opkg remove aria2
  2. opkg install /file_route.ipk
复制代码

3、配置aria2
我比较倾向于将配置和下载内容分开了。创建配置目录和配置文件:
  1. mkdir /jffs/aria2-config
复制代码

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 控制台输入
  1. cat > /jffs/aria2-config/run.sh << EOF
  2. #!/bin/sh


  3. if [ -d "/mnt/sda1/downloads/" ]; then
  4.         echo "restarting aria2 ..."
  5.         iptables -D INPUT -p tcp --dport 48028 -j ACCEPT
  6.         iptables -I INPUT -p tcp --dport 48028 -j ACCEPT
  7.         iptables -D INPUT -p udp --dport 48028 -j ACCEPT
  8.         iptables -I INPUT -p udp --dport 48028 -j ACCEPT
  9.         iptables -D INPUT -p tcp --dport 6800 -j ACCEPT
  10.         iptables -I INPUT -p tcp --dport 6800 -j ACCEPT
  11.         killall aria2c
  12.         aria2c --conf-path=/jffs/aria2-config/aria2.conf -c -D
  13. else
  14.         echo /mnt/sda1/downloads/ not mount!
  15. fi
  16. EOF
复制代码
上述6800是管理端口,48028是aria2的监听端口,都开放这些端口。


5、启动测试
运行:
  1. sh /jffs/aria2-config/run.sh
复制代码
然后tail一下日志文件,看看是否有错误
  1. 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."}})

成功后就可以将
  1. 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


我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 07:08

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表