准备一台有一定空闲硬盘空间，流量无限制的VPS；较为多空间的网盘，例如onedrive、google drive等等；开始1. 如果需要，可以先优化下网络（国外主机建议优化）这里介绍的是“一键安装最新内核并开启 BBR 脚本”1脚本适用环境系统支持：CentOS 6+，Debian 7+，Ubuntu 12+虚拟技术：OpenVZ 以外的，比如 KVM、Xen、VMware 等内存要求：≥128M使用方法使用root用户登录，运行以下命令：wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh安装完成后，脚本会提示需要重启 VPS，输入 y 并回车后重启。重启完成后，进入 VPS，验证一下是否成功安装最新内核并开启 TCP BBR，输入以下命令：sysctl net.ipv4.tcp_available_congestion_control返回值一般为：net.ipv4.tcp_available_congestion_control = bbr cubic renosysctl net.ipv4.tcp_congestion_control返回值一般为：net.ipv4.tcp_congestion_control = bbrsysctl net.core.default_qdisc返回值一般为：net.core.default_qdisc = fqlsmod | grep bbr返回值有 tcp_bbr 模块即说明 bbr 已启动。注意：并不是所有的 VPS 都会有此返回值，若没有也属正常。2. 安装rclonerclone2能够方便的管理 google drive 与 OneDrive for Business以及FTP等网盘，支持挂载盘符与命令MOVE,COPY,SYNC,MKDIR等操作。脚本安装有一些可能会用到的，也装下，避免回过头来装apt update apt install wget unzip net-tools bc curl sudo -y要在Linux / macOS / BSD系统上安装rclone，请运行：curl https://rclone.org/install.sh | sudo bash对于测试版安装，请运行：curl https://rclone.org/install.sh | sudo bash -s beta脚本首先会检查已安装的版本，如果不需要，将不会重新下载rclone配置由于rclone对于Linux系统来说，采用的是fuse的文件格式，所以先安装下fuse:centos系统64位安装yum install fuse-devel.x86_64 fuse.x86_6432位安装yum install fuse-devel.i686 fuse.i686debain/ubuntu系统apt-get install -y fuse下面开始配置：因为OneDrive for Business用的多，所以暂时以此为例子。rclone config然后选择N) New remote 返回如下1 / Amazon Drive \ "amazon cloud drive" 2 / Amazon S3 (also Dreamhost, Ceph, Minio) \ "s3" 3 / Backblaze B2 \ "b2" 4 / Box \ "box" 5 / Dropbox \ "dropbox" 6 / Encrypt/Decrypt a remote \ "crypt" 7 / FTP Connection \ "ftp" 8 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 9 / Google Drive \ "drive" 10 / Hubic \ "hubic" 11 / Local Disk \ "local" 12 / Microsoft Azure Blob Storage \ "azureblob" 13 / Microsoft OneDrive \ "onedrive" 14 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" 15 / QingClound Object Storage \ "qingstor" 16 / SSH/SFTP Connection \ "sftp" 17 / Yandex Disk \ "yandex" 18 / http Connection \ "http"选择13 Microsoft OneDrive，会出现。Microsoft App Client Id - leave blank normally. client_id> Microsoft App Client Secret - leave blank normally. client_secret>这两个默认回车，直接跳过。Remote config Choose OneDrive account type? - Say b for a OneDrive business account - Say p for a personal OneDrive account b) Business p) Personal b/p> 在此选择b Bussiness，返回Use auto config? - Say Y if not sure - Say N if you are working on a remote or headless machine y) Yes n) No此处一定要选择N，因为大多数linux没有可视窗口，然后返回。For this to work, you will need rclone available on a machine that has a web browser available. Execute the following on your machine: rclone authorize "onedrive" Then paste the result below:在此，需要用本机Windows下，下载rclone for windows，然后输入rclone authorize “onedrive”，登录OneDrive获得result，把获得的result黏贴在这就可以了。注意OneDrive for Business 目前有15G单文件的限制。后续按照操作步骤，退出就OK。常用命令## 文件上传 rclone copy /home/backup gdrive:backup # 本地路径 配置名字:谷歌文件夹名字 ### 文件下载 rclone copy gdrive:backup /home/backup ### 列表 rclone ls gdrive:backup rclone lsl gdrive:backup # 比上面多一个显示上传时间 rclone lsd gdrive:backup # 只显示文件夹 ### 新建文件夹 rclone mkdir gdrive:backup ### 挂载 rclone mount gdrive:mm /root/mm & ### 卸载 fusermount -u /root/mm #### 其他 #### #### https://softlns.github.io/2016/11/28/rclone-guide/ rclone config - 以控制会话的形式添加rclone的配置，配置保存在.rclone.conf文件中。 rclone copy - 将文件从源复制到目的地址，跳过已复制完成的。 rclone sync - 将源数据同步到目的地址，只更新目的地址的数据。 –dry-run标志来检查要复制、删除的数据 rclone move - 将源数据移动到目的地址。 rclone delete - 删除指定路径下的文件内容。 rclone purge - 清空指定路径下所有文件数据。 rclone mkdir - 创建一个新目录。 rclone rmdir - 删除空目录。 rclone check - 检查源和目的地址数据是否匹配。 rclone ls - 列出指定路径下所有的文件以及文件大小和路径。 rclone lsd - 列出指定路径下所有的目录/容器/桶。 rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。 rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。 rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。 rclone size - 获取指定路径下，文件内容的总大小。. rclone version - 查看当前版本。 rclone cleanup - 清空remote。 rclone dedupe - 交互式查找重复文件，进行删除/重命名操作。 #### 其他 ####3. 安装BT下载神器aria2Aria2 (aria2c)3，它是一款开源免费跨平台且不限速的多线程下载软件，其优点是速度超级快、体积轻盈、性能强劲、资源占用少；支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载；并且跨平台支持 Win、Mac、Linux，甚至在树莓派、NAS、路由器等设备上都能安装它。脚本安装Debian/Ubuntu：可以直接使用命令安装：apt-get -y install aria2CentOS 7+：安装 epel 源：yum install epel-release然后直接安装：yum install aria2 -y配置 Aria2创建必须的文件及文件夹。创建 .aria2 目录 mkdir /root/.aria2创建 aria2.session 文件touch /root/.aria2/aria2.session创建 aria2.logtouch /root/.aria2/aria2.log下载dht文件(目录在/root/.aria2/下面)wget "https://raw.githubusercontent.com/chiakge/Aria2-Rclone-DirectoryLister-Aria2Ng/master/sh/dht.dat"创建 aria2 配置文件,示例如下## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## ## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ## ## 文件保存相关 ## # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 dir=/root/download # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M disk-cache=32M # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: none < falloc ? trunc < prealloc # falloc和trunc则需要文件系统和内核支持 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 file-allocation=trunc # 断点续传 continue=true ## 下载连接相关 ## # 最大同时下载任务数, 运行时可修改, 默认:5 max-concurrent-downloads=10 # 同一服务器连接数, 添加时可指定, 默认:1 max-connection-per-server=5 # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 min-split-size=10M # 单个任务最大线程数, 添加时可指定, 默认:5 split=20 # 整体下载速度限制, 运行时可修改, 默认: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=false ## 进度保存相关 ## # 从会话文件中读取下载任务 input-file=/root/.aria2/aria2.session # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件 save-session=/root/.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=true # 打开IPv6 DHT功能, PT需要禁用 enable-dht6=false # DHT网络监听端口, 默认:6881-6999 #dht-listen-port=6881-6999 # 本地节点查找, PT需要禁用, 默认:false #bt-enable-lpd=true # 种子交换, PT需要禁用, 默认:true enable-peer-exchange=true # 每个种子限速, 对少种的PT很有用, 默认:50K #bt-request-peer-speed-limit=50K # 客户端伪装, PT需要 peer-id-prefix=-TR2770- user-agent=Transmission/2.77 # 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0 seed-ratio=0.1 # 强制保存会话, 即使任务已经完成, 默认:false # 较新的版本开启后会在任务完成后依然保留.aria2文件 #force-save=false # BT校验相关, 默认:true #bt-hash-check-seed=true # 继续之前的BT任务时, 无需再次校验, 默认:false bt-seed-unverified=true # 为0时，下载完成就不做种 seed-time=0 # 下载完成执行脚本 on-download-complete=/root/.aria2/autoupload.sh # 允许覆盖 allow-overwrite=true # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false bt-save-metadata=false将其保存为 aria2.conf，放在 /root/.aria2/ 目录下。启动 Aria2方法一运行nohup aria2c -c "/root/.aria2/aria2.conf" > "/root/.aria2/aria2.log" 2>&1 &停止kill -9 $(ps -ef |grep "aria2c" |grep -v "grep" |awk '{print $2}')方法二新开名为 aria2 的 screen，不开机启动。apt-get -y install screen screen -dmS aria2 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c这样，Aria2 在 linux 下配置完成了，可以使用了。如果需要 Web 端，可以参考接下来的文章使用 AriaNg(比较强大，包含了 Yaaw 和 Aria2 Web UI 的所有功能)。3. 关于离线下载部分说明离线下载实现的方法是：利用aria2来下载文件，下载完成后执行脚本，调用rclone来同步到网盘上。这样假设网盘空间无限大的话，那就可以存很多东西到网盘。贴个下载完成后执行脚本的示例：#!/bin/bash path=$3 #取原始路径，我的环境下如果是单文件则为/data/demo.png,如果是文件夹则该值为文件夹内某个文件比如/data/a/b/c/d.jpg downloadpath='/root/download' if [ $2 -eq 0 ] then exit 0 fi while true; do #提取下载文件根路径，如把/data/a/b/c/d.jpg变成/data/a filepath=$path path=${path%/*}; if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ] #如果下载的是单个文件 then rclone move "$filepath" ${name}:${folder}/ exit 0 elif [ "$path" = "$downloadpath" ] #文件夹 then while [[ "`ls -A "$filepath/"`" != "" ]]; do rclone move "$filepath"/ ${name}:${folder}/"${filepath##*/}"/ --delete-empty-src-dirs done rm -rf "$filepath/" exit 0 fi done${name}这个请修改成你rclone配置中的名称；${folder}这个请修改成你所同步的网盘里的文件夹名； bbr:脚本来源秋水逸冰，访问来源查看更多使用方法。 ↩ rclone:访问官网,查看更多信息 ↩ aria2:访问官网，查看更多信息 ↩