From e328617536dca2c5bb4db0485391e521f074ae6c Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Fri, 28 Nov 2025 11:17:23 +1100 Subject: [PATCH] AI refinement (#250) * AI refinement * Refine aria2 config provided by AI --- Caddyfile | 44 ++++++++++++++++++++++++++++++--- README.md | 11 +++++---- SecureCaddyfile | 44 ++++++++++++++++++++++++++++++--- conf/aria2.conf | 66 +++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 145 insertions(+), 20 deletions(-) diff --git a/Caddyfile b/Caddyfile index 6437b82..1f7f269 100644 --- a/Caddyfile +++ b/Caddyfile @@ -11,17 +11,53 @@ redir /rclone /rclone/ 301 redir /files /files/ 301 redir /ro /ro/ 301 -reverse_proxy /rpc 127.0.0.1:6800 -reverse_proxy /jsonrpc 127.0.0.1:6800 +# Aria2 RPC with WebSocket support and timeouts +reverse_proxy /rpc 127.0.0.1:6800 { + transport http { + read_timeout 300s + write_timeout 300s + dial_timeout 30s + keepalive 90s + keepalive_idle_conns 10 + max_conns_per_host 0 + } + header_up X-Real-IP {remote_host} + header_up X-Forwarded-For {remote_host} +} + +reverse_proxy /jsonrpc 127.0.0.1:6800 { + transport http { + read_timeout 300s + write_timeout 300s + dial_timeout 30s + keepalive 90s + keepalive_idle_conns 10 + max_conns_per_host 0 + } + header_up X-Real-IP {remote_host} + header_up X-Forwarded-For {remote_host} +} route /rclone/* { uri strip_prefix /rclone - reverse_proxy 127.0.0.1:5572 + reverse_proxy 127.0.0.1:5572 { + transport http { + read_timeout 120s + write_timeout 120s + keepalive 60s + } + } } route /files/* { uri strip_prefix /files - reverse_proxy 127.0.0.1:8080 + reverse_proxy 127.0.0.1:8080 { + transport http { + read_timeout 120s + write_timeout 120s + keepalive 60s + } + } } route /ro/* { diff --git a/README.md b/README.md index e204339..20c89a5 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,8 @@ File Browser * Caddy File Server(Read Only) * FileManger: * Rclone: -* Please use `admin`/`admin` as username and password to login `Filebrowser` for the first time. And use `user`/`password` to login `Rclone` if you don't update `ARIA2_USER` and `ARIA2_PWD` +* For the initial `admin` password of Filebrowser, please check the docker logs you should see something like `User 'admin' initialized with randomly generated password: xxx`, then use that password to login Filebrowser. +* And use `user`/`password` to login `Rclone` if you don't update `ARIA2_USER` and `ARIA2_PWD` ### Full features run @@ -111,8 +112,8 @@ services: image: wahyd4/aria2-ui:latest environment: - ENABLE_AUTH=true - - ARIA2_USER=hello - - ARIA2_PWD=world + - ARIA2_USER=user + - ARIA2_PWD=password - DOMAIN=http://toozhao.com ports: - "80:80" @@ -127,8 +128,8 @@ Then simply run `docker-compose up -d`, that's it! | `ENABLE_AUTH` | Whether to enable Basic auth | | `ENABLE_RCLONE` | Whether to disable Rclone, if you running this container offline or do not have stable connection to Github, please set to `false` | | `ENABLE_FILEBROWSER` | Whether to disable Filebrowser, set it to `false` to disable it, by default it's enabled | -| `ARIA2_USER` | Basic Auth username, Rclone GUI uses it as well. | -| `ARIA2_PWD` | Basic Auth password, Rclone GUI uses it as well. | +| `ARIA2_USER` | Basic Auth username, Rclone GUI uses it as well. Default value: `user` | +| `ARIA2_PWD` | Basic Auth password, Rclone GUI uses it as well. Default value: `password` | | `ARIA2_EXTERNAL_PORT` | The Aria2 port which exposed to public to access to | | `PUID` | Bind Linux UID into container which means you can use non `root` user to manage downloaded files, default UID is `1000` | | `PGID` | Bind Linux GID into container, default GID is 1000 | diff --git a/SecureCaddyfile b/SecureCaddyfile index 9c80628..dd30b73 100644 --- a/SecureCaddyfile +++ b/SecureCaddyfile @@ -17,17 +17,53 @@ redir /rclone /rclone/ 301 redir /files /files/ 301 redir /ro /ro/ 301 -reverse_proxy /rpc 127.0.0.1:6800 -reverse_proxy /jsonrpc 127.0.0.1:6800 +# Aria2 RPC with WebSocket support and timeouts +reverse_proxy /rpc 127.0.0.1:6800 { + transport http { + read_timeout 300s + write_timeout 300s + dial_timeout 30s + keepalive 90s + keepalive_idle_conns 10 + max_conns_per_host 0 + } + header_up X-Real-IP {remote_host} + header_up X-Forwarded-For {remote_host} +} + +reverse_proxy /jsonrpc 127.0.0.1:6800 { + transport http { + read_timeout 300s + write_timeout 300s + dial_timeout 30s + keepalive 90s + keepalive_idle_conns 10 + max_conns_per_host 0 + } + header_up X-Real-IP {remote_host} + header_up X-Forwarded-For {remote_host} +} route /rclone/* { uri strip_prefix /rclone - reverse_proxy 127.0.0.1:5572 + reverse_proxy 127.0.0.1:5572 { + transport http { + read_timeout 120s + write_timeout 120s + keepalive 60s + } + } } route /files/* { uri strip_prefix /files - reverse_proxy 127.0.0.1:8080 + reverse_proxy 127.0.0.1:8080 { + transport http { + read_timeout 120s + write_timeout 120s + keepalive 60s + } + } } route /ro/* { diff --git a/conf/aria2.conf b/conf/aria2.conf index fa9bbbd..cabab14 100644 --- a/conf/aria2.conf +++ b/conf/aria2.conf @@ -14,7 +14,7 @@ rpc-listen-all=true #RPC端口, 仅当默认端口被占用时修改 #rpc-listen-port=6800 #最大同时下载数(任务数), 路由建议值: 3 -max-concurrent-downloads=5 +max-concurrent-downloads=3 #种子最小分享率 seed-ratio=100.0 #断点续传 @@ -24,7 +24,8 @@ max-connection-per-server=5 #最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要 min-split-size=10M #单文件最大线程数, 路由建议值: 5 -split=10 +# 降低到5以减少并发连接数 (3任务×5连接×5线程=75个连接,比之前的250少很多) +split=5 #下载速度限制 max-overall-download-limit=0 #单文件速度限制 @@ -41,12 +42,14 @@ max-upload-limit=0 # dir=/user-files/superuser/ dir=/data #文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本 -#disk-cache=0 +# 启用16MB磁盘缓存以提高性能 +disk-cache=16M #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?) #enable-mmap=true #文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长 #所需时间 none < falloc ? trunc « prealloc, falloc和trunc需要文件系统和内核支持 -file-allocation=prealloc +# 改用falloc,比prealloc快很多,同时保持较好的性能 +file-allocation=falloc # disable IPV6 by default disable-ipv6=true @@ -56,6 +59,32 @@ log=/var/log/aria2.log #You can set either debug, info, notice, warn or error. log-level=warn +# 超时和重试设置 +# 连接超时时间(秒) +connect-timeout=60 +# 超时时间(秒) +timeout=60 +# 最大重试次数,0表示不限制 +max-tries=5 +# 重试等待时间(秒) +retry-wait=10 + +# HTTP/FTP 选项 +# HTTP/FTP 最大连接数 +max-connection-per-server=5 +# 允许 HTTP/FTP 分片下载 +allow-piece-length-change=true +# 允许覆盖已存在的文件 +allow-overwrite=false +# 自动重命名 +auto-file-renaming=true + +# 优化网络性能 +# URI 选择器,adaptive 会根据速度自动选择最快的服务器 +uri-selector=adaptive +# 服务器状态保存间隔(秒) +server-stat-of=/app/.cache/aria2_server_stat +server-stat-timeout=86400 ## Related to save downloading progress ## # 从会话文件中读取下载任务 @@ -66,7 +95,7 @@ save-session=/app/conf/aria2.session save-session-interval=10 # BT trackers from https://trackerslist.com/best.txt updated on 2021-06-06 -bt-tracker=http://1337.abcvg.info:80/announce,http://nyaa.tracker.wf:7777/announce,http://opentracker.xyz:80/announce,http://rt.tace.ru:80/announce,http://share.camoe.cn:8080/announce,http://t.nyaatracker.com:80/announce,http://torrentsmd.com:8080/announce,http://tr.cili001.com:8070/announce,http://tracker-cdn.moeking.me:2095/announce,http://tracker.anirena.com:80/announce,http://tracker.anirena.com:80/b16a15d9a238d1f59178d3614b857290/announce,http://tracker.anonwebz.xyz:8080/announce,http://tracker.bt4g.com:2095/announce,http://tracker.files.fm:6969/announce,http://tracker.gbitt.info:80/announce,http://tracker.ipv6tracker.ru:80/announce,http://tracker.noobsubs.net:80/announce,http://tracker.shittyurl.org:80/announce,http://tracker.tfile.co:80/announce,http://tracker.tfile.me:80/announce,http://tracker.trackerfix.com:80/announce,http://vps02.net.orel.ru:80/announce,https://1337.abcvg.info:443/announce,https://tr.torland.ga:443/announce,https://tracker.coalition.space:443/announce,https://tracker.gbitt.info:443/announce,https://tracker.lilithraws.cf:443/announce,https://tracker.nanoha.org:443/announce,https://tracker.nitrix.me:443/announce,https://tracker.parrotsec.org:443/announce,https://tracker.shittyurl.org:443/announce,https://tracker.tamersunion.org:443/announce,https://w.wwwww.wtf:443/announce,udp://6rt.tace.ru:80/announce,udp://9.rarbg.com:2830/announce,udp://9.rarbg.me:2710/announce,udp://9.rarbg.to:2710/announce,udp://app.icon256.com:8000/announce,udp://bubu.mapfactor.com:6969/announce,udp://discord.heihachi.pw:6969/announce,udp://exodus.desync.com:6969/announce,udp://explodie.org:6969/announce,udp://fe.dealclub.de:6969/announce,udp://inferno.demonoid.is:3391/announce,udp://ipv6.tracker.zerobytes.xyz:16661/announce,udp://mail.realliferpg.de:6969/announce,udp://movies.zsw.ca:6969/announce,udp://mts.tvbit.co:6969/announce,udp://open.demonii.com:1337/announce,udp://open.stealth.si:80/announce,udp://opentor.org:2710/announce,udp://opentracker.i2p.rocks:6969/announce,udp://p4p.arenabg.ch:1337/announce,udp://p4p.arenabg.com:1337/announce,udp://pow7.com:80/announce,udp://retracker.hotplug.ru:2710/announce,udp://retracker.lanta-net.ru:2710/announce,udp://retracker.netbynet.ru:2710/announce,udp://retracker01-msk-virt.corbina.net:80/announce,udp://t1.leech.ie:1337/announce,udp://t2.leech.ie:1337/announce,udp://thetracker.org:80/announce,udp://torrentclub.online:54123/announce,udp://tracker-de.ololosh.space:6969/announce,udp://tracker.0x.tf:6969/announce,udp://tracker.altrosky.nl:6969/announce,udp://tracker.army:6969/announce,udp://tracker.beeimg.com:6969/announce,udp://tracker.birkenwald.de:6969/announce,udp://tracker.blacksparrowmedia.net:6969/announce,udp://tracker.breizh.pm:6969/announce,udp://tracker.ccp.ovh:6969/announce,udp://tracker.cyberia.is:6969/announce,udp://tracker.dler.com:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.moeking.me:6969/announce,udp://tracker.nrx.me:6969/announce,udp://tracker.ololosh.space:6969/announce,udp://tracker.openbittorrent.com:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://tracker.shkinev.me:6969/announce,udp://tracker.theoks.net:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.uw0.xyz:6969/announce,udp://tracker.zerobytes.xyz:1337/announce,udp://tracker0.ufibox.com:6969/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker1.itzmx.com:8080/announce,udp://tracker2.dler.com:80/announce,udp://tracker2.dler.org:80/announce,udp://tracker2.itzmx.com:6961/announce,udp://tracker3.itzmx.com:6961/announce,udp://tracker4.itzmx.com:2710/announce,udp://u.wwwww.wtf:1/announce,udp://valakas.rollo.dnsabr.com:2710/announce,udp://vibe.community:6969/announce,udp://wassermann.online:6969/announce,udp://www.torrent.eu.org:451/announce +bt-tracker=http://1337.abcvg.info:80/announce,http://aboutbeautifulgallopinghorsesinthegreenpasture.online:80/announce,http://bt.okmp3.ru:2710/announce,http://echostar.ddnsfree.com:8080/announce,http://ipv4.rer.lol:2710/announce,http://ipv6.rer.lol:6969/announce,http://lucke.fenesisu.moe:6969/announce,http://nyaa.tracker.wf:7777/announce,http://t-backup.213891.xyz:80/announce,http://tk.greedland.net:80/announce,http://torrentsmd.com:8080/announce,http://tr.highstar.shop:80/announce,http://tracker.beeimg.com:6969/announce,http://tracker.bt4g.com:2095/announce,http://tracker.dhitechnical.com:6969/announce,http://tracker.mywaifu.best:6969/announce,http://tracker.renfei.net:8080/announce,http://tracker.tritan.gg:8080/announce,http://www.all4nothin.net:80/announce.php,http://www.wareztorrent.com:80/announce,https://1337.abcvg.info:443/announce,https://shahidrazi.online:443/announce,https://t.213891.xyz:443/announce,https://torrent.tracker.durukanbal.com:443/announce,https://tr.abiir.top:443/announce,https://tr.abir.ga:443/announce,https://tr.nyacat.pw:443/announce,https://tracker.alaskantf.com:443/announce,https://tracker.belmult.online:443/announce,https://tracker.foreverpirates.co:443/announce,https://tracker.ghostchu-services.top:443/announce,https://tracker.kuroy.me:443/announce,https://tracker.moeblog.cn:443/announce,https://tracker.pmman.tech:443/announce,https://tracker.qingwa.pro:443/announce,https://tracker.uraniumhexafluori.de:443/announce,https://tracker.yemekyedim.com:443/announce,https://tracker.zhuqiy.com:443/announce,https://tracker1.520.jp:443/announce,udp://anna.bt.bontal.net:6969/announce,udp://d40969.acod.regrucolo.ru:6969/announce,udp://evan.im:6969/announce,udp://exodus.desync.com:6969/announce,udp://extracker.dahrkael.net:6969/announce,udp://hificode.in:6969/announce,udp://martin-gebhardt.eu:25/announce,udp://open-tracker.demonoid.ch:6969/announce,udp://open.demonii.com:1337/announce,udp://open.demonoid.ch:6969/announce,udp://open.stealth.si:80/announce,udp://opentor.org:2710/announce,udp://opentracker.io:6969/announce,udp://p4p.arenabg.com:1337/announce,udp://public.demonoid.ch:6969/announce,udp://retracker.hotplug.ru:2710/announce,udp://retracker.lanta.me:2710/announce,udp://retracker01-msk-virt.corbina.net:80/announce,udp://run.publictracker.xyz:6969/announce,udp://torrentclub.online:54123/announce,udp://tr4ck3r.duckdns.org:6969/announce,udp://tracker.dler.com:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.ducks.party:1984/announce,udp://tracker.fnix.net:6969/announce,udp://tracker.gmi.gd:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://tracker.playground.ru:6969/announce,udp://tracker.plx.im:6969/announce,udp://tracker.qu.ax:6969/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.srv00.com:6969/announce,udp://tracker.theoks.net:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.tryhackx.org:6969/announce,udp://tracker.tvunderground.org.ru:3218/announce,udp://tracker1.myporn.club:9337/announce,udp://tracker2.dler.org:80/announce,udp://udp.tracker.projectk.org:23333/announce,udp://wepzone.net:6969/announce,udp://www.torrent.eu.org:451/announce,wss://tracker.openwebtorrent.com:443/announce # The script to be run when download completes #on-download-complete=/app/conf/aria2-sample-hook.sh @@ -75,8 +104,31 @@ on-download-complete=/app/conf/auto-upload.sh # The script to be run when download fails on-download-error=/app/conf/aria2-sample-hook.sh -## DHT +## BT/DHT 优化 +# 启用本地节点查找 +bt-enable-lpd=true +# 启用 DHT 功能 +enable-dht=true +# 启用 DHT6(IPv6 DHT) +#enable-dht6=false +# BT 监听端口 +listen-port=6881-6999 +# DHT 监听端口 +dht-listen-port=6881 +# DHT 入口节点 dht-entry-point=dht.transmissionbt.com:6881 dht-entry-point=dht.vuze.com:6881 dht-entry-point=dht.libtorrent.org:25401 -dht-listen-port=6881 +# DHT 文件 +dht-file-path=/app/.cache/dht.dat +dht-file-path6=/app/.cache/dht6.dat +# BT 最大连接数 +bt-max-peers=50 +# BT 请求的 peer 数量 +bt-request-peer-speed-limit=50K +# 继续之前的BT任务时不进行hash检查 +bt-seed-unverified=true +# BT tracker 的最大连接超时时间 +bt-tracker-connect-timeout=10 +# BT tracker 超时时间 +bt-tracker-timeout=10