Relay & Proxy

中转服务与代理配置

FlashDown 的中转能力分为“下载中继”和“标准代理”两层:下载中继负责把文件流从服务器转发到本机;标准代理负责让主程序、插件、WebView2、yt-dlp 和 ffmpeg 使用服务器网络访问站点。

下载服务端包

功能边界

下载中继使用 `/relay/download?url=目标地址`。服务器只做内存流式转发,不把文件下载保存到服务器磁盘,适合加速大文件、规避本机到源站链路差的问题。

标准代理使用 HTTP/HTTPS 前向代理端口,默认 `9877`。它支持浏览器内核的 `CONNECT` 请求,适合插件页面解析、yt-dlp/ffmpeg 走服务器网络,并在站点确实需要验证时给 WebView2 Cookie 兜底窗口使用。

能力下载中继 9876标准代理 9877
普通文件下载中转支持可辅助
主程序 HTTP 下载支持支持
AVideo 页面解析可兜底抓页面推荐
WebView2 Cookie 兜底不支持支持
MissAV/Jable 无弹窗解析可兜底推荐

VPS Docker 部署

推荐使用 VPS 中继服务,因为它同时提供下载中继和标准代理。上传 `FlashDown.RelayServer-Docker-*.zip` 到服务器,解压后执行:

cd /www/flashdown-relay
cp .env.example .env
nano .env
docker compose up -d

必须修改的配置:

AUTH_TOKEN=换成一串很长的随机令牌
ADMIN_PASSWORD=换成面板登录密码
PROXY_ENABLED=true
LISTEN_PORT=9876
PROXY_PORT=9877

如果要让插件和 Cookie 兜底窗口都走服务器网络,请确保服务器防火墙、安全组、宝塔安全页都放行 `9877`。

宝塔部署要点

  1. 在宝塔软件商店安装 Docker 管理器。
  2. 把服务端 zip 解压到 `/www/flashdown-relay`。
  3. 复制 `.env.example` 为 `.env` 并修改 token 和密码。
  4. 在 SSH 中运行 `docker compose up -d`。
  5. 宝塔“安全”里放行 `9876` 和 `9877`。

如果你只把 `9876` 做成 HTTPS 反向代理,下载中继和管理面板可以工作,但标准代理能力不会生效。`9877` 是 TCP 前向代理端口,不能用普通 Nginx `location` 反向代理替代。

客户端导入

部署完成后访问管理面板:

http://服务器IP:9876

登录后点击“复制客户端配置”,再到 FlashDown 主程序左下角“代理配置”里点击“粘贴导入”。导入后的配置应包含:

endpoint: http://服务器IP:9876
token: AUTH_TOKEN
proxyEndpoint: http://服务器IP:9877
proxyEnabled: true

如果 `proxyEndpoint` 为空,说明该节点只能做下载中继,不能让插件解析和 Cookie 兜底窗口使用服务器网络。

WebView2 Cookie 兜底

从 1.5.11 开始,AVideo 插件会优先通过主程序和标准代理直接解析 MissAV/Jable 页面;只有遇到 Cloudflare 验证、403、Cookie 缺失或页面结构无法解析时,才会弹出 WebView2 Cookie 兜底窗口。

FlashDown 会为 WebView2 创建本机临时代理桥:WebView2 连接 `127.0.0.1`,主程序再把认证信息转发到 VPS 的 `9877` 标准代理端口。这是为了绕过 WebView2 对远程认证代理不稳定的问题。

要让 Cookie 兜底窗口使用服务器网络,需要同时满足:

  1. 主程序“代理配置”已启用。
  2. 当前节点有可访问的标准代理地址。
  3. 服务器 `PROXY_ENABLED=true`。
  4. 服务器和云厂商安全组已放行 `9877`。
  5. 目标站点能从 VPS 所在网络访问。

Cloudflare 中转

Cloudflare Worker 模板只提供 HTTP fetch 型中继,适合做下载中继节点,不提供 `CONNECT` 标准代理。因此它不能让 WebView2 直接打开 MissAV/Jable,也不能替代 VPS 标准代理端口。

部署步骤:

npm install -g wrangler
wrangler login
cp wrangler.toml.example wrangler.toml
nano wrangler.toml
wrangler deploy

部署后,在 FlashDown“代理配置”中添加 Worker 地址,标准代理地址留空。也可以访问 `/relay/client-config` 获取可粘贴导入的 JSON。

CloudflareSpeedTest 等优选 IP 工具适合做外部测速参考,不建议 FlashDown 内置强制改写 Worker IP,因为 TLS、SNI、Host 和 Cloudflare 路由都依赖域名。

排查清单

管理面板能打开,但插件解析不走服务器网络:检查 `9877` 是否放行,客户端配置是否包含 `proxyEndpoint`。

AVideo 弹出 Cookie 窗口:这表示直接解析失败,程序正在尝试兜底验证。MissAV 多数情况下已可无弹窗解析;Jable 是否需要弹窗取决于站点当时的 Cloudflare 状态。

测速成功但 Cookie 窗口打不开:请确认测速结果里“标准代理”也可用,只有 `9876` 下载中继可用并不代表 `9877` 标准代理可用。

只配置 Cloudflare Worker 后无法获取 Cookie:这是预期行为,Worker 不是标准代理。请使用 VPS 中继服务。

下载中途断开:提高 `UPSTREAM_TIMEOUT_SECONDS`,确认宝塔/Nginx 反代关闭缓冲,并优先使用直连端口测试。