Stay Hungry. Stay Foolish.

之前讲了如何搭建 NextCloud,搭建过程可谓是非常繁琐的了,即使是环境配置用了一键包还是很复杂,而且 NextCloud 作为大型的云同步盘,对服务器资源的消耗是非常巨大的,而且为了安全性的考虑,权限要求非常严格,如果就拿来做下载机显然是不合算的。搭建的过程对于小白来说其实不是很友好,所以我们就来弄一个单纯的下载机,不需要搭建环境,不需要域名,不需要考虑权限配置,完全的小白操作!

预期目标

服务器 ip 访问,一个端口用于 Cloud Torrent 的 BT 和磁力下载,一个端口用于 Aria2 的面板,一个端口用于 Youtube 下载,再建立一个文件管理面板,如果需要共享的话,还可以再选装一个 h5ai 面板,同时还会补充介绍文件和 GDrive 和 Onedrive 的同步,充分发挥下载机的作用。

初始配置

本教程针对的是 Debian 系统,所以初始化配置如下,推荐使用 Debian 9 系统:

apt update && apt dist-upgrade -y
apt install curl vim wget git sudo zip unzip apt-transport-https screen lsb-release ca-certificates build-essential automake python python3 python3-pip -y

Cloud Torrent

这边就直接照抄 NextCloud 安装教程了,去掉了可能比较复杂的部分。使用官方一键脚本安装。

mkdir -p /var/www/
curl https://i.jpillora.com/cloud-torrent! | bash

然后利用 systemd 来管理,创建一个脚本,具体内容自己修改一下:

vi /etc/systemd/system/cloud-torrent.service

脚本内容如下:(更改 为自己的设置)

[Unit]
Description=cloud-torrent
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/var/www
ExecStart=/usr/local/bin/cloud-torrent --port <PORT1> --config-path /var/www/cloud-torrent.json --title "Cloud Torrent" --log --auth "<USER>:<PASSWD>"
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

然后就可以方便的使用啦:

# 启用:
systemctl enable cloud-torrent
# 开启、关闭、重启、查看状态
systemctl [start/stop/restart/status] cloud-torrent

访问 http://<YOURIP>:<PORT1> 就可以进行 BT 和磁力下载啦。

Aria2

Aria2 编译安装

  • 选择 apt 安装

网上很多教程说,apt 包管理安装的 aria2 很老啊什么的,实际上如果是较新系统打包的都可以直接使用

apt install aria2
  • 创建配置文件
mkdir /etc/aria2 && touch /etc/aria2/aria2.session && chmod 777 /etc/aria2/aria2.session && touch /etc/aria2/aria2.log && chmod 777 /etc/aria2/aria2.log && nano /etc/aria2/aria2.conf
  • 配置文件可以参考下面的配置:(不介绍相关配置了,直接使用即可,更改 <TOKEN> 部分为自己要设置的密码)
dir=/var/www/downloads 
log=/etc/aria2/aria2.log
check-integrity=false
continue=true
connect-timeout=60
dry-run=false
lowest-speed-limit=0
max-concurrent-downloads=20
max-connection-per-server=10
max-file-not-found=0
max-tries=5
min-split-size=20M
no-netrc=true
reuse-uri=true
retry-wait=5
server-stat-timeout=86400
split=32
stream-piece-selector=default
timeout=60
check-certificate=true
http-accept-gzip=false
http-no-cache=false
enable-http-keep-alive=true
enable-http-pipelining=true
ftp-reuse-connection=true
bt-enable-hook-after-hash-check=true
bt-enable-lpd=false
bt-force-encryption=false
bt-hash-check-seed=true
bt-load-saved-metadata=false
bt-max-open-files=100
bt-max-peers=0
bt-metadata-only=false
bt-min-crypto-level=plain
bt-request-peer-speed-limit=50K
bt-save-metadata=false
bt-seed-unverified=true
bt-stop-timeout=0
bt-tracker-connect-timeout=60
dht-listen-port=6881-6999
enable-dht=false
enable-dht6=false
enable-peer-exchange=false
follow-torrent=true
listen-port=51200
max-overall-upload-limit=1K
max-upload-limit=1K
peer-id-prefix=-DE1315-
peer-agent=Deluge/1315 
seed-ratio=0.1
seed-time=0
follow-metalink=true
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
enable-rpc=true
rpc-secret=<TOKEN>
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-listen-port=6800
rpc-max-request-size=2M
rpc-save-upload-metadata=true
# rpc-secure=
allow-overwrite=false
allow-piece-length-change=false
always-resume=true
async-dns=true
auto-file-renaming=true
auto-save-interval=60
console-log-level=warn
deferred-input=false
disable-ipv6=false
disk-cache=32M
download-result=default
event-poll=epoll
file-allocation=falloc
force-save=false
save-not-found=true
hash-check-only=false
human-readable=true
keep-unfinished-download-result=true
max-download-result=1000
max-resume-failure-tries=0
min-tls-version=TLSv1
log-level=warn
optimize-concurrent-downloads=true
piece-length=1M
max-overall-download-limit=0
max-download-limit=0
no-file-allocation-limit=5M
parameterized-uri=false
realtime-chunk-checksum=true
  • 创建启动脚本:
cat > /etc/systemd/system/aria2c.service << EOF
[Unit]
Description=Aria2c download manager
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf
ExecReload=/usr/bin/kill -HUP $MAINPID
RestartSec=1min
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

然后就可以方便的使用啦:

启用:
systemctl enable aria2c
开启、关闭、重启、查看状态
systemctl [start/stop/restart/status] aria2c

安装 AriaNG 面板和 filebroswer 面板

安装 Caddy

wget -O - https://raw.githubusercontent.com/S8Cloud/installSS/master/caddy.sh | bash
mkdir -p /var/www/ariang && mkdir -p /var/www/downloads && chown -R www-data.www-data /var/www/downloads && cd /var/www/ariang && wget https://github.com/mayswind/AriaNg/releases/download/1.0.1/AriaNg-1.0.1-AllInOne.zip && unzip *.zip && rm *.zip

Caddy 配置如下:

vi /etc/caddy/Caddyfile
*:80 {
    root /var/www/downloads
    timeouts none
    gzip
    filebrowser / /var/www/downloads {
        database /var/www/filebrowser.db
    }
}
*:8080 {
    root /var/www/ariang
    index index.html
    gzip
}
  • 完成以后,就可以:wq 保存并退出,重启 Caddy 就可以正常使用了:
service caddy restart
  • 打开 http://<YOURIP>:8080 就可以看到 AriaNG 面板了。
    然后你会发现,诶为什么会连接失败呢?

AriaNG

因为没有设置连接的 ,打开 AriaNG 设置-RPC 填写你的 然后刷新就可以连接啦。

打开 http://<YOURIP>/admin,就会发现 FileBroswer 已经启动了,默认的用户名和密码都是 admin,第一次进入时注意自行修改。

filemanager

傻瓜式的界面,简中可选,还有什么不满足的呢

filemanager

RClone 同步 GDrive、Onedrive 方案

RClone 是一个高速的在多平台之间(Linux Mac Windows)相互同步文件的工具,同时也支持市面上主流的网盘和云存储,例如 Google Drive、Onedrive、AWS S3 等等,关键是同步的速度非常之快,以 GDrive 为例,一般的同步速度高达 250 MBit/s 比同类的同步软件不知道快到哪里去了。安装配置也比较的简单。

Rclone 安装

  • 一键包安装
curl https://rclone.org/install.sh | sudo bash
  • 安装完毕后,执行 rclone config 开始初始化配置。

首先会要求设置一个新的同步端,我们选择 GDrive 选项即可,然后选择手动配置,会出现一个很长的链接,需要复制到浏览器然后登录 Google 账户进行授权,然后授权完成后把得到的代码黏贴回窗口就创建完毕了。

Rclone1

Rclone2

  • 如果要连接 OneDrive 的话可能就不那么简单了,需要在本地也创建一个 Rclone 然后本地打开授权链接进行授权再将授权码黏贴到服务器 ssh 窗口,稍微麻烦一些。

Rcloue 的使用

# 列目录(文件),类似的还有lsd和lsl命令,一个只列目录,一个顺便输出信息
rclone ls remote:path
 
# 复制(最常用的功能啦)
rclone copy source:sourcepath dest:destpath

# 类似,当src和dst为目录时一个效果,为单文件时类似cp为不同名字的文件
rclone copyto rclone copyto src dst
 
# 读取,当path为文件时读文件内容,为目录时读目录内所有文件内容,另外可以用--include "*.txt"来指定文件名内关键字
rclone cat remote:path/to/
 
# 清理,删除存储源的垃圾箱或者是文件历史版本,部分存储类型支持
rclone cleanup remote:path
 
# 删除文件,可以使用--(min|max)-size --(min|max)-age等参数来限定范围
rclone delete remote:path
 
# 删除空目录,类似的还有删除只包含空目录的目录的rmdirs命令
rclone rmdir
 
# 删除,这个就是啥都删了
rclone purge remote:path
 
# 同步,这个其实才是核心来着
rclone sync source:path dest:path

挂载 Rclone 作为磁盘

服务器硬盘太小怎么办,我们可以利用 Rclone 挂载第三方磁盘到机器上,这样你的机器就有很大很大的硬盘了,比如 Gdrive 是965 TB,似乎无穷无尽呢,注意要求挂载远程硬盘的话,机器的 IO,CPU 和网速(到 Google CDN)都必须足够,否则很容易 gg。挂载的命令很简单啦,下面以 GDrive 为例,google 是之前新建的 Gdrive 标号。

mkdir -p /var/www/data
rclone mount google:/ /var/www/data --allow-other &

挂载好了以后输入 df -h 就可以看到新挂载的 GDrive 盘啦!