首页 » 互联网资讯 » 正文

搭建带有aria2的nextcloud网盘

之前一直用oneindex配合rclone和aria2做离线下载和网盘,最近E5不能续期了,就开始找替代品。两三年前用过nextcloud,那个时候下载用的是自带的ocDownloader,但是太复杂了,而且后台还需要自己安装配置一堆东西。现在准备直接自建aria2服务,再把数据自动存储。

nextcloud搭建

我系统用的是debian 10 64bits,服务器为ikoula G3900那款,正好赶上促销只要10欧一个月,拿来做测试是最合适不过了。
安装nextcloud

  1. apt install snapd
  2. snap install core
  3. snap install nextcloud

修改访问域名
此时,访问 http://ip 就可以看到nextcloud的默认设置页面,设置初始账号和密码即可使用。但是为了便于使用和管理,需要绑定一个域名,编辑以下文件中overwrite.cli.url这一行,把ip地址改为域名,并重启nextcloud:

  1. /var/snap/nextcloud/current/nextcloud/config/config.php
  2. snap restart nextcloud

现在就可以通过域名访问nextcloud了,注意:因为修改了配置文件,第一次使用域名登陆需要等待一段时间让系统处理。
添加ssl
有了域名就忍不住上ssl,使用nextcloud内置的Let’s Encrypt一键开启ssl。一定要注意有/snap/bin/,很多人根本没有尝试就照抄别人的记录,漏了这个导致系统一直提示找不到命令。

  1. /snap/bin/nextcloud.enable-https lets-encrypt

开启aria2服务

nextcloud已经搭建好了,但是还缺少一个离线下载功能。自带的插件又太差,就直接上自建aria2服务。

  1. apt install aria2
  2. mkdir /etc/aria2
  3. touch /etc/aria2/aria2.conf
  4. touch /etc/aria2/aria2.session
  5. touch /lib/systemd/system/aria2.service

需要填写aria2.conf和aria2.service,因为内容太多,把它们放在了页尾。把内容粘贴复制进去即可。然后启动aria2服务。
联立aria2和nextcloud

一个有趣的问题是nextcloud使用了mysql来记录文件,所以如果我们直接使用aria2下载文件到对应的目录里面,nextcloud本身是不会看到的。幸好,我们可以利用aria2的下载完成动作和nextcloud的文件扫描功能,让aria2在下载完文件的时候告诉nextcloud扫描一下并把文件记录到数据库。
在/home/文件夹下,使用以下命令新建filesscan.sh文件并联立:

  1. touch /home/filesscan.sh
  2. echo “nextcloud.occ files:scan –all” >> /home/filesscan.sh

到此,已经搭建完成,但是因为aria2有个可视化界面的话操作起来会更方便,所以推荐AriaNG,下载地址点击这里。在AriaNG设置中选择RPC,填写Aria RPC地址(即你的域名),协议使用https,密钥填写aria2.conf的密码,最后刷新页面。

————————

aria2.conf配置文件,注意把rpc-secret=passwd中的passwd修改一下,这个是使用AriaNG的密码,没有密码就无法使用aria2下载。

  1. ## 文件保存相关 ##
  2. # 文件保存目录
  3. dir=/var/snap/nextcloud/common/nextcloud/data/imes/files/Download
  4. # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
  5. disk-cache=32M
  6. # 断点续传
  7. continue=true
  8. # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
  9. # 预分配所需时间: none < falloc ? trunc < prealloc
  10. # falloc和trunc则需要文件系统和内核支持
  11. # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
  12. file-allocation=trunc
  13. ## 下载连接相关 ##
  14. # 最大同时下载任务数, 运行时可修改, 默认:5
  15. #max-concurrent-downloads=10
  16. # 同一服务器连接数, 添加时可指定, 默认:1
  17. # 官方的aria2最高设置为16, 如果需要设置任意数值请重新编译aria2
  18. max-connection-per-server=16
  19. # 整体下载速度限制, 运行时可修改, 默认:0(不限制)
  20. #max-overall-download-limit=0
  21. # 单个任务下载速度限制, 默认:0(不限制)
  22. #max-download-limit=0
  23. # 整体上传速度限制, 运行时可修改, 默认:0(不限制)
  24. #max-overall-upload-limit=0
  25. # 单个任务上传速度限制, 默认:0(不限制)
  26. #max-upload-limit=0
  27. # 禁用IPv6, 默认:false
  28. # disable-ipv6=true
  29. # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
  30. # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
  31. min-split-size=10M
  32. # 单个任务最大线程数, 添加时可指定, 默认:5
  33. # 建议同max-connection-per-server设置为相同值
  34. split=16
  35. ## 进度保存相关 ##
  36. # 从会话文件中读取下载任务
  37. input-file=/etc/aria2/aria2.session
  38. # 在Aria2退出时保存错误的、未完成的下载任务到会话文件
  39. save-session=/etc/aria2/aria2.session
  40. # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
  41. save-session-interval=60
  42. ## RPC相关设置 ##
  43. # 启用RPC, 默认:false
  44. enable-rpc=true
  45. # 允许所有来源, 默认:false
  46. rpc-allow-origin-all=true
  47. # 允许外部访问, 默认:false
  48. rpc-listen-all=true
  49. # RPC端口, 仅当默认端口被占用时修改
  50. # rpc-listen-port=6800
  51. # 设置的RPC授权令牌, v1.18.4新增功能, 取代 –rpc-user 和 –rpc-passwd 选项
  52. rpc-secret=passwd
  53. # 启动SSL
  54. rpc-secure=true
  55. # 证书文件, 如果启用SSL则需要配置证书文件, 例如用https连接aria2
  56. rpc-certificate=/var/snap/nextcloud/current/certs/live/fullchain.pem
  57. rpc-private-key=/var/snap/nextcloud/current/certs/live/privkey.pem
  58. ## BT/PT下载相关 ##
  59. # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
  60. follow-torrent=true
  61. # 客户端伪装, PT需要
  62. peer-id-prefix=-TR2770-
  63. user-agent=Transmission/2.77
  64. # 强制保存会话, 即使任务已经完成, 默认:false
  65. # 较新的版本开启后会在任务完成后依然保留.aria2文件
  66. #force-save=false
  67. # 继续之前的BT任务时, 无需再次校验, 默认:false
  68. bt-seed-unverified=true
  69. # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
  70. # bt-save-metadata=true
  71. # 单个种子最大连接数, 默认:55 0表示不限制
  72. bt-max-peers=0
  73. # 最小做种时间, 单位:分
  74. seed-time = 10
  75. # 分离做种任务
  76. bt-detach-seed-only=true
  77. on-download-complete=/home/filesscan.sh

 

aria2.service配置文件如下,在填写完后,运行systemctl enable aria2和systemctl start aria2以开启服务。

  1. [Unit]
  2. Description=Aria2c download manager
  3. Requires=network.target
  4. After=dhcpcd.service
  5. [Service]
  6. Type=forking
  7. User=root
  8. RemainAfterExit=yes
  9. ExecStart=/usr/bin/aria2c –conf-path=/etc/aria2/aria2.conf –daemon
  10. ExecReload=/usr/bin/kill -HUP $MAINPID
  11. RestartSec=1min
  12. Restart=on-failure
  13. [Install]
  14. WantedBy=multi-user.target

 



贵州网友 lzmy 评论:
帮顶,小白表示:

太复杂了!搭不起来!


福建网友 tq02xva 评论:
其实我想法很简单 安装aria2跟nextcloud
然后aira2的文件保存到nextcloud文件目录就好啦
那有那么多麻烦东西

虽然我没试过 但是我感觉应该可以


山东网友 jun426 评论:

其实我想法很简单 安装aria2跟nextcloud
然后aira2的文件保存到nextcloud文件目录就好啦
那有那么多麻烦 …

可以,我就这么操作的


江西网友 Bonnenu 评论:
nextcloud好是好,但是感觉很臃肿的样子


云南网友 理变维后象 评论:
nextcloud同步不怎么稳,文件多的话会出问题。之前用过放弃了。


浙江网友 yahoodog2014 评论:

其实我想法很简单 安装aria2跟nextcloud
然后aira2的文件保存到nextcloud文件目录就好啦
那有那么多麻烦 …

确认是可以的


山东网友 ycy106 评论:
nextcloud最大缺点就是图片太多会很慢,比较吃机器性能


甘肃网友 郑志展 评论:

其实我想法很简单 安装aria2跟nextcloud
然后aira2的文件保存到nextcloud文件目录就好啦
那有那么多麻烦 …

我这个就是这么做的,但是nextcloud靠mysql存储数据的,所以要额外配置一下动作脚本


江苏网友 独钓一江秋2014 评论:
用了很久了,但nextcloud确实比较臃肿。而且vps硬盘都不大,一般都是下载完自动上传gd。

发表评论