588 字
3 分钟
基于网盘部署下载站的一些想法
背景:流量费血妈贵,交不起了,打算找点羊毛薅
一、Openlist解决网盘认证
- Alist似了喵,Alist被卖掉了喵
- 由于部分网盘监管较为严格,禁止多IP同时下载,而下载站如果不使用重定向,流量流经服务器,就失去了意义,所以暂时选择移动云盘(据传三大运营商对此管理力度不大)
- 中国移动云盘 - OpenList 文档自己配置,懒得写
- 先说结论
- 登陆站点后台,导航到
设置
>全局
下,关闭签名所有
- 导航到
存储
,编辑资源所在的存储,关闭启用签名
- 导航到
元信息
,确保资源所在路径没有设置元信息
- 登陆站点后台,导航到
- 附带原方案链接:Alist外链问题求助 · AlistGo/alist · Discussion #6024
二、重写路径
- 首先确保存储后端支持重定向,具体请在文档中
默认使用的存储方式
中查询,并确保配置中确实开启重定向~~(要不然血妈贵的流量费账单又会找上你)~~ - 如:中国移动云盘 - OpenList 文档
- 众所周知,Openlist的默认路由,/d代表直链,/p代表代理:router.go - AlistGo/alist
- 众所周知,Openlist默认端口5244,且没有SSL
- 放一下我对Caddyfile
*.sunnypai.top { tls /caddy/certs/sunnypai.top/cert.pem /caddy/certs/sunnypai.top/cert.key
# openlist netdrive @openlist { host openlist.sunnypai.top } handle @openlist { reverse_proxy openlist:5244 { header_up Host {http.request.host} header_up X-Real-IP {http.request.remote} header_up X-Forwarded-For {http.request.remote} header_up X-Forwarded-Proto {http.request.scheme} header_up X-Forwarded-Host {http.request.host} header_up Range {http.request.header.Range} header_up If-Range {http.request.header.If-Range} } }
# netdisk mirror source @mirror-cn-ningbo-01 { host dl-cn-ningbo-01.sunnypai.top } handle @mirror-cn-ningbo-01 { redir https://openlist.sunnypai.top/d{path} temporary }
}
- 其中第一块匹配openlist主服务,第二块匹配直链。如果不用主服务,可以简化为:
*.sunnypai.top { tls /caddy/certs/sunnypai.top/cert.pem /caddy/certs/sunnypai.top/cert.key
# openlist netdrive @openlist { host openlist.sunnypai.top } handle @openlist { reverse_proxy openlist:5244/d{path} { header_up Host {http.request.host} header_up X-Real-IP {http.request.remote} header_up X-Forwarded-For {http.request.remote} header_up X-Forwarded-Proto {http.request.scheme} header_up X-Forwarded-Host {http.request.host} header_up Range {http.request.header.Range} header_up If-Range {http.request.header.If-Range} } }
}
此时逻辑为,客户端请求->caddy->openlist直链地址->返回网盘cdn重定向地址
7. 另外,使用dl-cn-ningbo-01.sunnypai.top
,而非dl.cn-ningbo-01.sunnypai.top
的原因不是caddy匹配器(matcher
)无法精确匹配,是通配符证书(wildcard certs
)只能匹配下一级子域名(这里是三级域名),无法匹配到四级域名dl.
,我懒得申请签发新证书
三、成果展示
请求 URL:GET http://dl-cn-ningbo-01.sunnypai.top/test_20250910_101555.txt重定向 URL:GET https://dl-cn-ningbo-01.sunnypai.top/test_20250910_101555.txt重定向 URL:GET https://openlist.sunnypai.top/d/test_20250910_101555.txt重定向 URL:GET https://hcyykj-eos-hhht5-01.eos.huhehaote-8.cmecloud.cn/ff95dc4f93c74d699b5b49a31224cd71086?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%27test_20250910_101555.txt&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20250910T050203Z&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=REDACTED_ACCESS_KEY%2F20250910%2Fdefault%2Fs3%2Faws4_request&t=2&u=REDACTED_USER_ID&ot=personal&oi=REDACTED_USER_ID&f=REDACTED_FILE_HASH&X-Amz-Signature=REDACTED_SIGNATURE
以上结果来自Apifox
基于网盘部署下载站的一些想法
https://fuwari.vercel.app/posts/基于网盘部署下载站的一些想法/