588 字
3 分钟
基于网盘部署下载站的一些想法

背景:流量费血妈贵,交不起了,打算找点羊毛薅


一、Openlist解决网盘认证#
  1. Alist似了喵,Alist被卖掉了喵
  2. 由于部分网盘监管较为严格,禁止多IP同时下载,而下载站如果不使用重定向,流量流经服务器,就失去了意义,所以暂时选择移动云盘(据传三大运营商对此管理力度不大)
  3. 中国移动云盘 - OpenList 文档自己配置,懒得写
  4. 先说结论
    • 登陆站点后台,导航到 设置>全局 下,关闭 签名所有
    • 导航到 存储,编辑资源所在的存储,关闭 启用签名
    • 导航到 元信息,确保资源所在路径没有设置元信息
  5. 附带原方案链接:Alist外链问题求助 · AlistGo/alist · Discussion #6024

二、重写路径#
  1. 首先确保存储后端支持重定向,具体请在文档中默认使用的存储方式中查询,并确保配置中确实开启重定向~~(要不然血妈贵的流量费账单又会找上你)~~
  2. 如:中国移动云盘 - OpenList 文档
  3. 众所周知,Openlist的默认路由,/d代表直链,/p代表代理:router.go - AlistGo/alist
  4. 众所周知,Openlist默认端口5244,且没有SSL
  5. 放一下我对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
}
}
  1. 其中第一块匹配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/基于网盘部署下载站的一些想法/
作者
Sunny Pai
发布于
2025-09-10
许可协议
CC BY-NC-SA 4.0