入手mac以后,平时mac都不关机,所以感觉可以做一些服务器的工作。从简到难,先搞一个下载工具挂着吧,mac迅雷体验还可以,但是不知道为什么老是闪退,满怀希望的等了一晚上结果发现迅雷刚下一点就闪退的体验实在是不好就想找一个替代迅雷的工具。先试了试mac上的小火箭,但是真是一点速度没有,加了bt-tracker也是毫无起色;又找出来utorrent,挂机下东西倒是可以下下来,不过大部分情况速度都不如人意。用了一段时间以后,发觉平时有些需求是在公司想到需要下载些什么,可是只能等到晚上回去才能添加任务开始下载,感觉浪费了很多时间,所以就想有一个可在外网控制的下载工具,所以决定使用aria2c。
工具的安装很简单,homebrew安装就可以了:
brew install aria2
安装好后,在用户根目录下建一个隐藏文件夹:.aria2,新建配置文件aria2.conf:
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
rpc-secret=SECRET
#配置https
rpc-secure=true
rpc-certificate=aria.crt
rpc-private-key=aria.key
###速度相关
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=3
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=3
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=20M
#单文件最大线程数, 路由建议值: 5
split=5
#下载速度限制 0 不限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=10
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
###进度保存相关
input-file=./aria2/aria2.session
save-session=./aria2/aria2.session
#定时保存会话,需要1.16.1之后的release版
#save-session-interval=60
###磁盘相关
#文件保存路径, 默认为当前启动位置
dir=./aria2/data/
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
###BT相关
#启用本地节点查找
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
#aria2亦可以用于PT下载, 下载的关键在于伪装
#不确定是否需要,为保险起见,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
#bt-tracker列表,可在https://github.com/ngosang/trackerslist更新
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.open-internet.nl:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,http://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://9.rarbg.to:2710/announce,udp://9.rarbg.me:2710/announce,http://tracker3.itzmx.com:6961/announce,http://tracker1.itzmx.com:8080/announce,udp://exodus.desync.com:6969/announce,udp://explodie.org:6969/announce,udp://denis.stalker.upeer.me:6969/announce,udp://thetracker.org:80/announce,udp://open.demonii.si:1337/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.tiny-vps.com:6969/announce,udp://retracker.lanta-net.ru:2710/announce,http://vps02.net.orel.ru:80/announcea
#定时保存会话,需要1.16.1之后的某个release版本
#save-session-interval=60
启动时记得指定配置文件位置:
aria2c --conf-path=./aria2/aria2.conf -D
至此,aria2c的后端服务就配置完成了,已经可以开始下载了,但是命令行还是不那么方便,所以需要一个前端界面来做下载服务管理。aria的前端有好几种,google一下可以找一些自己喜欢的风格来用,mac上也有封装好的客户端。比对了之后觉得AriaNG很不错,配置方式、界面风格等等都比较喜欢,所以安装AriaNG。
AriaNG为基于node.js的纯前端web UI,下载源码编译后放在nginx下即可:
git clone git@github.com:mayswind/AriaNg.git
npm install
npm install -g gulp
gulp clean build
#如果npm一直失败可尝试cnpm:
npm install -g cnpm
cnpm install
前端配置https的话,后端aria2服务必须相应的配置https,即配置文件中https相关的部分。
关于安全部分,可以考虑使用nginx权限控制,添加用户名密码,也可以不添加,每次登录进去会要求重新配置aria2的token,不知道token的情况下也不会泄漏信息。
最后在路由上配好NAT,有个外网ip就能在外边控制mac的下载任务了。
