网络应用

Aria2 AriaNG Rclone的安装部署

黑色 · 4月19日 · 2020年 · · · · 438次已读

Aria2的安装部署

全能离线下载程序

VPS脚本安装

P3TERX的完美配置脚本

bash <(wget -qO- git.io/aria2.sh)

逗比的一键安装脚本

wget -N git.io/aria2.sh && chmod +x aria2.sh && ./aria2.sh

备用脚本

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

wget -N --no-check-certificate https://www.moerats.com/usr/shell/Aria2/aria2.sh && chmod +x aria2.sh && bash aria2.sh

Docker容器镜像安装

Docker的安装和使用详见

Aria2 Pro 容器镜像

以下内容搬运自P3TERX,有删增,其他详细参数及配置请移步原文

https://p3terx.com/archives/docker-aria2-pro.html
  • 使用 Aria2 完美配置方案
    • BT 下载率高、速度快
    • 重启后不丢失任务进度、不重复下载
    • 下载错误或取消下载自动删除未完成的文件防止磁盘空间占用
    • 下载完成自动清除.aria2后缀名文件
    • 自动获取 BT tracker 列表,进一步提升 BT 下载速度
    • 更好的 PT 下载支持
    • 防版权投诉、防迅雷吸血
  • 使用 aria2-builder 项目最新静态编译二进制文件
    • 多平台:amd64i386arm64armhf
    • 全功能:Async DNSBitTorrentFirefox3 CookieGZipHTTPSMessage DigestMetalinkXML-RPCSFTP
    • 最新依赖库,提供更安全、稳定、快速的下载体验
    • 通过 CI 服务持续更新最新版本
  • 支持与 RCLONE 联动
    • 自动上传 OneDrive 、Google Drive 等网盘
    • 百度网盘加速下载并转存到其它网盘
    • 自由选择上传网盘
  • 支持新一代互联网协议 IPv6
  • 定时自动更新 BT tracker 列表(无需重启)
  • 用户文件权限设置功能
  • 配置文件持久化,支持使用 watchtower 自动更新容器。
  • 极简设计,专注下载,简单易用,少即是多。

项目地址

安装

安装配置完成Docker后执行命令(或者宝塔面板安装Docker后官方库搜索 p3terx/aria2-pro 拉取镜像)

docker pull p3terx/aria2-pro

Host网络模式部署

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=<TOKEN> \
    -e RPC_PORT=6800 \
    -e LISTEN_PORT=6888 \
    -v ~/aria2-config:/config \
    -v ~/aria2-downloads:/downloads \
    p3terx/aria2-pro

参数详解:

–name aria2-pro – 容器名称,可自定义以示区分。

–restart unless-stopped – 设置容器重启策略。

–log-opt max-size=1m – 日志大小限制为 1MB,

–network host – 使用 host 网络模式。直接使用宿主机网络,免去端口映射导致的部分性能损失,且灵活性更高,可更方便的配置使用 IPv6 网络。host 模式仅适用于 Docker 17.06+ ,如果你的 Docker 版本低于此,请先升级。

 -e PUID=$UID, -e PGID=$GID – 设置容器内账户 UID 与 GID。目的是修正非 root 账户使用中遇到的文件权限问题。

-v ~/aria2-config:/config – 配置目录映射,配置文件持久化。左边为宿主机路径供自定义,不要有中文、不要混用配置文件。

-v ~/aria2-downloads:/downloads – 下载目录映射。左边为宿主机路径供自定义,不要有中文。

-e RPC_SECRET=<TOKEN> – RPC 密钥设置,即 We­bUI 连接时需要填写的密码。需要修改后再输入命令

-e RPC_PORT=6800 – RPC 端口设置,忽略则可通过配置文件修改。如果你使用 brige 网络模式请忽略此项。

-e LISTEN_PORT=6888 – BT 监听端口(TCP)、DHT 监听端口(UDP)设置。如果你使用 brige 网络模式请忽略此项。

-e DISK_CACHE=<SIZE> – 磁盘缓存设置,默认值 64M。本地路由器或 NAS 建议在有足够的内存空闲情况下设置为适当的大小以减少磁盘 I/​O 延长硬盘寿命,比如 128M、256M 等,但不要超过内存可用空间大小。

IPV6_MODE=enable – 开启 IPv6 功能。此变量等于设定配置文件中的选项 disable-ipv6=false 与 enable-dht6=true。可间接提升 BT 下载速率,但需要网络完整支持 IPv6 ,否则会导致部分功能异常,甚至无法下载。

-e UMASK_SET=022 – umask 设置,默认值 022。

-e RCLONE=enable – 开启 RCLONE 联动功能。首次启动容器会自动安装 RCLONE,且每次重启会自动更新。

-e TRACKERS=no – 禁用自动获取 BT tracker ,供 PT 下载需求使用。

-e TZ=Asia/Shanghai – 时区设置,默认时区为 Asia/Shanghai,若无特殊需求无需自定义。

设置时,可以先输入docker run -d \ 再逐条输入参数,也可以按以上格式全部编写完成成复制进去

bridge 网络模式端口映射

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=<TOKEN> \
    -p 6800:6800 \
    -p 6888:6888 \
    -p 6888:6888/udp \
    -v ~/aria2-config:/config \
    -v ~/aria2-downloads:/downloads \
    p3terx/aria2-pro

bridge 网络模式主要是用于网络隔离,这对于一般用户而言没有多大用处,而且端口映射多了一层 NAT ,会有一定的性能损失。如果要使用 IPv6 网络还需要进行一些列复杂的设置。所以对于全新部署且没有特殊需求不会用到下面这些参数,推荐使用 host 网络模式进行部署。

-p 6800:6800 – RPC 通讯端口映射,左边为宿主机端口供自定义。

-p 6888:6888 – BT 监听端口(TCP)映射,即 Aria2 配置中 listen-port 选项定义的端口。左边为宿主机端口。

-p 6888:6888/udp – DHT 监听端口(UDP)映射,即 Aria2 配置中 dht-listen-port 选项定义的端口。可与 BT 监听端口不同。PT 下载可忽略。

联动 RCLONE 自动上传

首次配置可使用docker exec -it aria2-pro rclone config命令进入 RCLONE 交互菜单选项,配置方法可参考:

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> n # 选择n,新建
name> Google # 输入名称,类似于标签,用于区分不同的网盘。
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 / A stackable unification remote, which can appear to merge the contents of several remotes
\ “union”
2 / Alias for a existing remote
\ “alias”
3 / Amazon Drive
\ “amazon cloud drive”
4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
\ “s3”
5 / Backblaze B2
\ “b2”
6 / Box
\ “box”
7 / Cache a remote
\ “cache”
8 / Dropbox
\ “dropbox”
9 / Encrypt/Decrypt a remote
\ “crypt”
10 / FTP Connection
\ “ftp”
11 / Google Cloud Storage (this is not Google Drive)
\ “google cloud storage”
12 / Google Drive
\ “drive”
13 / Hubic
\ “hubic”
14 / JottaCloud
\ “jottacloud”
15 / Local Disk
\ “local”
16 / Mega
\ “mega”
17 / Microsoft Azure Blob Storage
\ “azureblob”
18 / Microsoft OneDrive
\ “onedrive”
19 / OpenDrive
\ “opendrive”
20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ “swift”
21 / Pcloud
\ “pcloud”
22 / QingCloud Object Storage
\ “qingstor”
23 / SSH/SFTP Connection
\ “sftp”
24 / Webdav
\ “webdav”
25 / Yandex Disk
\ “yandex”
26 / http Connection
\ “http”
Storage> 12 # 选择12,Google Drive
** See help for drive backend at: https://rclone.org/drive/ **

Google Application Client Id
Leave blank normally.
Enter a string value. Press Enter for the default (“”).
client_id> # 留空,回车
Google Application Client Secret
Leave blank normally.
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).
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 or Y didn’t work
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=XXXXXXXXXXX.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=XXXXXXXXXXXXXXXXXXXX
Log in and authorize rclone for access # 会弹出浏览器,要求你登录账号进行授权。如果没有弹出,复制上面的链接到浏览器中打开进行授权。
Enter verification code> # 在这里输入网页上显示的验证码

Configure this as a team drive?
y) Yes
n) No
y/n> y
Fetching team drive list…
No team drives found in your account——————–
[Google]
type = drive
scope = drive

token = {“access_token”:”XXXXXXXXXXXXXXXXXXXXX”}

y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:

Name Type
==== ====
Google drive
P3TERX onedrive

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

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=P3TERX \
    -e RPC_PORT=6800 \
    -e LISTEN_PORT=6888 \
    -v ~/aria2-config:/config \
    -v ~/rclone-downloads:/downloads \
    -e RCLONE=enable \
    p3terx/aria2-pro

启动命令加入-e RCLONE=enable参数开启 RCLONE 自动上传功能

如果之前使用过 RCLONE 可以在宿主机的默认位置找到 RCLONE 的配置文件(~/.config/rclone/rclone.conf),复制到 Aria2 Pro 配置目下即可。

最后你需要修改 Aria2 Pro 配置文件目录下autoupload.sh文件中的网盘名称与目标路径这两个选项。下载目录不要修改,容器已经对此进行定义。

RCLONE 自动上传 Google Drive

docker run -d \
    --name aria2-gdrive \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=P3TERX \
    -e RPC_PORT=6804 \
    -e LISTEN_PORT=44444 \
    -v ~/aria2-gdrive-config:/config \
    -v ~/gdrive-downloads:/downloads \
    -e RCLONE=enable \
    p3terx/aria2-pro

使用 Aria2 Pro 镜像创建名为aria2-gdrive的容器 RPC 端口设置为6804,BT 端口设置44444,配置目录为~/aria2-gdrive-config,下载目录为~/gdrive-downloads。

RCLONE 自动上传 One Drive

docker run -d \
    --name aria2-onedrive \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=P3TERX \
    -e RPC_PORT=6803 \
    -e LISTEN_PORT=33333 \
    -v ~/aria2-onedrive-config:/config \
    -v ~/onedrive-downloads:/downloads \
    -e RCLONE=enable \
    p3terx/aria2-pro

使用 Aria2 Pro 镜像创建名为aria2-onedrive的容器 RPC 端口设置为6803,BT 端口设置33333,配置目录为~/aria2-onedrive-config,下载目录为~/onedrive-downloads。


AriaNG

项目地址

方式一

  • 安装wget unzip curl
yum -y install wget unzip curl  #centos
apt-get install -y wget unzip curl #Debian/Ubuntu
  • 安装(以1.1.5为例,最新版地址在github项目releases里复制)
wget https://github.com/mayswind/AriaNg/releases/download/1.1.5/AriaNg-1.1.5.zip
nzip AriaNg-1.1.5.zip

方式二

宝塔面板上传文件,解压,绑定域名访问


CCAA集成脚本安装

CCAA原为CentOS + Caddy + AriaNg + Aria2,故命名为CCAA,不过现在已经不仅仅支持CentOS,包括主流的Debian、Ubuntu也已经支持,自2.0版本开始已移除Caddy,改用Golang写了一个简单的webserver来运行AriaNg。

以下是CCAA目前用到的开源软件,以及他们起到的作用。

  • Aria2 提供离线下载
  • ccaa_web支撑AriaNg运行
  • AriaNg为Aria2 提供WEB界面
  • Filemanager提供文件管理

安装curl

#Debian or Ubuntu
apt-get -y install curl
#CentOS
yum -y install curl

一键脚本

#海外
bash <(curl -Lsk https://raw.githubusercontent.com/helloxz/ccaa/master/ccaa.sh)
#国内
bash <(curl -Lsk https://raw.githubusercontent.com/helloxz/ccaa/master/ccaa.sh) cdn

根据提示输入http://IP:6080/打开AriaNg界面,依次打开AriaNg设置 – RPC ,填写Aria2 RPC 密钥,然后刷新页面,至此已经完成


CloudReve 安装部署

SSH方式部署

下载安装

在下载地址页面找到最新版本的URL替换wget的URL,文件名不同时自行替换命令

wget https://github.com/cloudreve/Cloudreve/releases/download/3.0.0/cloudreve_3.0.0_linux_amd64.tar.gz
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz
chmod +x ./cloudreve
./cloudreve

设置反向代理

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5212;
}

开启进程守护(Systemd)

# 编辑配置文件
vim /usr/lib/systemd/system/cloudreve.service
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target

[Service]
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

将PATH_TO_CLOUDREVE更改为程序所在目录

# 更新配置
systemctl daemon-reload
# 启动服务
systemctl start cloudreve
# 设置开机启动
systemctl enable cloudreve
# 启动服务
systemctl start cloudreve
# 停止服务
systemctl stop cloudreve
# 重启服务
systemctl restart cloudreve
# 查看状态
systemctl status cloudreve

宝塔面板方式部署

  • 新建网站,以目录为cloud做例,不同目录名称自行替换命令行
  • github或官网获取最新程序地址,远程或者本地上传
  • 手动解压后执行以下命令
cd /www/wwwroot/cloud
chmod +x ./cloudreve
./cloudreve
  • 出现程序界面,记录用户名和密码,control+c退出,不退出无法进行下面的开启进程守护
  • 网站申请ssl,用于OneDrive关联
  • 网站-设置-反向代理,127.0.0.1:5212,其他默认
  • 软件商店-系统工具-安装Supervisor管理器-添加守护,运行目录 /www/wwwroot/cloud ,启动命令 /www/wwwroot/cloud/cloudreve
  • 启动,完成

Docker方式安装

官方指定了几个镜像,进去看详细安装配置方法


Rclone部署及应用

官方一键脚本

curl https://rclone.org/install.sh | sudo bash

配置及应用