安装宝塔

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh

宝塔安装完成后,在宝塔里面安装nginx1.14+php5.6即可

安装Aria2

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

修改Aria2配置文件

目前有一个bug,如果没有清空已完成任务的话,重启aria2服务后,会自动重新下载之前的任务,所以建议重启前,清空已完成任务
2022-12-5 更新
点击下载aria2.conf
2023-8-18 更新
如果要修改成https模式,切记在配置文件中添加cer和key以及把前面#去掉才能生效

## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ##
## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释  ##

## 文件保存相关 ##

# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/root/Download/aria2
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
# file-allocation=none
# 断点续传
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=1M
# 单个任务上传速度限制, 默认:0
#max-upload-limit=1000
# 禁用IPv6, 默认:false
disable-ipv6=false

## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=/root/.aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/root/.aria2/aria2.session
# 任务状态改变后保存会话的间隔时间(秒), 0 为仅在进程正常退出时保存, 默认:0
# 为了及时保存任务状态、防止任务丢失,此项值只建议设置为 1
save-session-interval=1

# 自动保存任务进度到控制文件(*.aria2)的间隔时间(秒),0 为仅在进程正常退出时保存,默认:60
# 此项值也会间接影响从内存中把缓存的数据写入磁盘的频率
# 想降低磁盘 IOPS (每秒读写次数)则提高间隔时间
# 想在意外非正常退出时尽量保存更多的下载进度则降低间隔时间
# 非正常退出:进程崩溃、系统崩溃、SIGKILL 信号、设备断电等
auto-save-interval=20

# 强制保存,即使任务已完成也保存信息到会话文件, 默认:false
# 开启后会在任务完成后保留 .aria2 文件,文件被移除且任务存在的情况下重启后会重新下载。
# 关闭后已完成的任务列表会在重启后清空。

force-save=false
## 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=qq200411
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
# 是否启用 RPC 服务的 SSL/TLS 加密,
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
#rpc-secure=true
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)
#rpc-certificate=/etc/v2ray-agent/tls/bp3.club.crt
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)
#rpc-private-key=/etc/v2ray-agent/tls/bp3.club.key

## 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
force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
#bt-save-metadata=true
#最小做种时间
#此选项设置为 0 时, 将在 BT 任务下载完成后不进行做种.
seed-time=0
#下载完成后执行脚本
on-download-complete=/root/.aria2/upload.sh
bt-tracker=udp://tracker.opentrackr.org:1337/announce,http://tracker.opentrackr.org:1337/announce,udp://open.tracker.cl:1337/announce,udp://9.rarbg.com:2810/announce,udp://opentracker.i2p.rocks:6969/announce,https://opentracker.i2p.rocks:443/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.tiny-vps.com:6969/announce,udp://open.stealth.si:80/announce,udp://tracker.openbittorrent.com:6969/announce,udp://tracker.moeking.me:6969/announce,udp://tracker.dler.org:6969/announce,udp://tr.cili001.com:8070/announce,udp://p4p.arenabg.com:1337/announce,udp://open.demonii.com:1337/announce,udp://movies.zsw.ca:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://explodie.org:6969/announce,udp://exodus.desync.com:6969/announce,https://tracker.nanoha.org:443/announce,https://tracker.lilithraws.org:443/announce,https://tracker.cyber-hub.net:443/announce,https://tr.burnabyhighstar.com:443/announce,http://tracker.mywaifu.best:6969/announce,http://tracker.dler.org:6969/announce,http://tr.cili001.com:8070/announce,http://t.acg.rip:6699/announce,udp://www.peckservers.com:9000/announce,udp://vibe.sleepyinternetfun.xyz:1738/announce,udp://v2.iperson.xyz:6969/announce,udp://uploads.gamecoast.net:6969/announce,udp://tracker2.dler.org:80/announce,udp://tracker1.myporn.club:9337/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker.zemoj.com:6969/announce,udp://tracker.theoks.net:6969/announce,udp://tracker.tcp.exchange:6969/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.srv00.com:6969/announce,udp://tracker.publictracker.xyz:6969/announce,udp://tracker.pomf.se:80/announce,udp://tracker.openbtba.com:6969/announce,udp://tracker.novaopcj.eu.org:6969/announce,udp://tracker.monitorit4.me:6969/announce,udp://tracker.lelux.fi:6969/announce,udp://tracker.leech.ie:1337/announce,udp://tracker.joybomb.tw:6969/announce,udp://tracker.jonaslsa.com:6969/announce,udp://tracker.filemail.com:6969/announce,udp://tracker.encrypted-data.xyz:1337/announce,udp://tracker.ddunlimited.net:6969/announce,udp://tracker.bitsearch.to:1337/announce,udp://tracker.auctor.tv:6969/announce,udp://tracker.artixlinux.org:6969/announce,udp://tracker.army:6969/announce,udp://tracker.altrosky.nl:6969/announce,udp://tracker.4.babico.name.tr:3131/announce,udp://tracker-udp.gbitt.info:80/announce,udp://tr.bangumi.moe:6969/announce,udp://torrents.artixlinux.org:6969/announce,udp://torrentclub.space:6969/announce,udp://thouvenin.cloud:6969/announce,udp://themaninashed.com:6969/announce,udp://tamas3.ynh.fr:6969/announce,udp://slicie.icon256.com:8000/announce,udp://sanincode.com:6969/announce,udp://run.publictracker.xyz:6969/announce,udp://run-2.publictracker.xyz:6969/announce,udp://rep-art.ynh.fr:6969/announce,udp://qtstm32fan.ru:6969/announce,udp://public.publictracker.xyz:6969/announce,udp://psyco.fr:6969/announce,udp://open.tracker.ink:6969/announce,udp://open.free-tracker.ga:6969/announce,udp://open.dstud.io:6969/announce,udp://new-line.net:6969/announce,udp://moonburrow.club:6969/announce,udp://mirror.aptus.co.tz:6969/announce,udp://mail.zasaonsk.ga:6969/announce,udp://mail.artixlinux.org:6969/announce,udp://leefafa.tk:6969/announce,udp://laze.cc:6969/announce,udp://kokodayo.site:6969/announce,udp://htz3.noho.st:6969/announce,udp://fh2.cmp-gaming.com:6969/announce,udp://fe.dealclub.de:6969/announce,udp://f1sh.de:6969/announce,udp://epider.me:6969/announce,udp://download.nerocloud.me:6969/announce,udp://cutscloud.duckdns.org:6969/announce,udp://concen.org:6969/announce,udp://chouchou.top:8080/announce,udp://carr.codes:6969/announce,udp://camera.lei001.com:6969/announce,udp://bt2.archive.org:6969/announce,udp://bt1.archive.org:6969/announce,udp://bt.ktrackers.com:6666/announce,udp://black-bird.ynh.fr:6969/announce,udp://astrr.ru:6969/announce,udp://admin.52ywp.com:6969/announce,udp://aarsen.me:6969/announce,https://tracker2.ctix.cn:443/announce,https://tracker1.520.jp:443/announce,https://tracker.tamersunion.org:443/announce,https://tracker.moeblog.cn:443/announce,https://tracker.lelux.fi:443/announce,https://tracker.kuroy.me:443/announce,https://tracker.gbitt.info:443/announce,https://tracker.foreverpirates.co:443/announce,https://1337.abcvg.info:443/announce,http://www.peckservers.com:9000/announce,http://wepzone.net:6969/announce,http://vps02.net.orel.ru:80/announce,http://tracker4.itzmx.com:2710/announce,http://tracker3.itzmx.com:6961/announce,http://tracker3.ctix.cn:8080/announce,http://tracker2.itzmx.com:6961/announce,http://tracker2.dler.org:80/announce,http://tracker1.itzmx.com:8080/announce,http://tracker1.bt.moack.co.kr:80/announce,http://tracker.zerobytes.xyz:1337/announce,http://tracker.skyts.net:6969/announce,http://tracker.novaopcj.eu.org:6969/announce,http://tracker.lelux.fi:80/announce,http://tracker.gbitt.info:80/announce,http://tracker.files.fm:6969/announce,http://tracker.encrypted-data.xyz:1337/announce,http://tracker.bt4g.com:2095/announce,http://t.overflow.biz:6969/announce,http://parag.rs:6969/announce,http://open.tracker.ink:6969/announce,http://open.acgnxtracker.com:80/announce,http://incine.ru:6969/announce,http://fxtt.ru:80/announce,http://fosstorrents.com:6969/announce,http://bt.okmp3.ru:2710/announce,http://1337.abcvg.info:80/announce

upload.sh

把upload.sh放入/root/.aria2/中
2022-9-25更新:增加自动删除.aria2格式文件,增加文件下载成功以及上传成功后通知到tgbot
2022-12-5更新:增加重命名,在原文件名前面添加当前日期,防止同名的情况下无法上传onedrive
2022-12-13更新:增加如果重命名为中文,自动进行urlEncode,防止tg推送显示乱码的问题

#!/bin/bash

GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";  #默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20";  #默认分块20m,自行修改
RemoteDIR="aria2";  #上传到Onedrive的路径,默认为根目录,如果要上传到MOERATS目录,""里面请填成MOERATS
LocalDIR="/root/Download/aria2/";  #Aria2下载目录,记得最后面加上/
Uploader="/usr/local/oneindex/OneDriveUploader";  #上传的程序完整路径,默认为本文安装的目录
Config="/usr/local/oneindex/auth.json";  #初始化生成的配置auth.json绝对路径,参考第3步骤生成的路径
time=$(date "+%Y%m%d%H%M-")
filename=$(basename $3)
rename=$(date "+%Y%m%d%H%M-")$(basename $3)
urlEncoderename=`echo -n "$rename" | xxd -ps | tr -d '\n' | sed -r 's/(..)/%\1/g'`

if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi

function LoadFile(){
  if [[ ! -e "${Uploader}" ]]; then return; fi
  IFS_BAK=$IFS
  IFS=$'\n'
  tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
  FileLoad="${LocalDIR}${tmpFile}"
  if [[ ! -e "${FileLoad}" ]]; then return; fi
  ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
  if [[ -z "$ItemSize" ]]; then return; fi
  if [[ "$ItemSize" -ge "$MaxSize" ]]; then
    echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
    return;
  fi
  ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -n "${time}${filename}"  -r "${RemoteDIR}" -skip
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
    curl -X GET https://tgbot.bananazone.cc/sendMessage/2p3dk2ejgkdtkni9u?text=$urlEncoderename%E4%B8%8A%E4%BC%A0OneDrive%E6%88%90%E5%8A%9F
  fi
  IFS=$IFS_BAK
}
curl -X GET https://tgbot.bananazone.cc/sendMessage/2p3dk2ejgkdtkni9u?text=$urlEncoderename%E4%B8%8B%E8%BD%BD%E6%88%90%E5%8A%9F
#rm -f "$3.aria2"
LoadFile;

编辑好上传脚本后,可以检测下脚本编码是否正确,比如我脚本路径为/root/.aria2/upload.sh,使用命令:
bash /root/.aria2/upload.sh
如果无任何输出,则正确,反之输出类似$'r': command not found错误,则需要转换下编码格式
安装dos2unix,转换格式dos2unix /root/.aria2/upload.sh

为了避免出现编码错误可以直接下载配置文件

给脚本权限

chmod 777 /root/.aria2/upload.sh

重启

bash /root/aria2.sh

安装Oneindex

wget https://github.com/donwa/oneindex/releases/download/3.1/oneindex.zip -P /usr/local/oneindex/ && cd /usr/local/oneindex/ && unzip oneindex.zip

给权限

chmod 777 /usr/local/oneindex/cache
chmod 777 /usr/local/oneindex/config

伪静态

在nginx配置文件里面添加

if (!-f $request_filename)
{
set $rule_0 1$rule_0;
}
if (!-d $request_filename)
{
set $rule_0 2$rule_0;
}
if ($rule_0 = "21")
{
rewrite ^/(.*)$ /index.php?/$1 last;
}

安装自动上传脚本

wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/oneindex/ && chmod +x /usr/local/oneindex/OneDriveUploader

获取授权
【国际版、个人版(家庭版)】
【中国版(世纪互联)】

/usr/local/oneindex/OneDriveUploader -a "http://localhost/......."

如果提示Init config file: /path/to/file/auth.json类似信息,则初始化成功
完成后会生成auth.json文件,默认生成位置是在/root,要根据实际情况调整位置,我这里需要把auth.json放到/usr/local/oneindex/

mv /root/auth.json /usr/local/oneindex/ && chmod 777 /usr/local/oneindex/auth.json

导致上传失败的原因:

  • auth.json无效
  • 出现找不到脚本的情况:Could not execute user command: /root/.aria2/upload.sh: No such file or directory
  • 脚本内容设置有误

解决办法:

  • 重新获取auth.json
  • 编码问题,安装dos2unix,转换格式dos2unix /root/.aria2/upload.sh
  • 仔细核对对于设置的目录是否设置有误

参考文章

给Oneindex添加访问密码

在你想添加访问密码的文件夹目录下添加一个.password文件,里面输入你设置的密码即可