-
Notifications
You must be signed in to change notification settings - Fork 113
Reverse Proxy
Aethersailor edited this page Aug 15, 2026
·
3 revisions
公网部署需要同时配置 TLS、入口访问控制、服务安全档位、请求大小、真实客户端地址和日志策略。
flowchart LR
U["客户端"] -->|"HTTPS"| R["反向代理"]
R -->|"HTTP / 私有网络"| S["SubConverter-Extended"]
S --> O["外部配置、规则或需要后端解析的订阅"]
容器端口建议只绑定宿主机:
127.0.0.1:25500:25500
反向代理负责公开的 443 端口。不要同时把容器 25500 直接暴露公网,否则访问者可以绕过反向代理策略。
[managed_config]
managed_config_prefix = "https://sub.example.com"
[security]
profile = "public"
allow_public_upload = false需要无条件禁止公开上传时使用 strict。
server {
listen 443 ssl http2;
server_name sub.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://127.0.0.1:25500;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120s;
}
}订阅 URL 和外部配置参数可能使请求行较长。出现 HTTP 414 时,应先确认请求是否合理、是否已经正确 URL 编码,再调整入口代理的请求行限制。不要通过删除应用层 URL 限制来掩盖异常请求。
Dashboard 防爆破限制默认只信任与应用建立 TCP 连接的 socket peer。只有同时满足以下条件时,才读取代理请求头:
- 应用端口不能被外部直接访问;
- 入口代理会覆盖而不是附加所选请求头;
-
trusted_proxy_cidrs只包含实际代理网络。
Docker 环境变量示例:
SUBCONVERTER_DASHBOARD_CLIENT_IP_HEADER=x-forwarded-for
SUBCONVERTER_DASHBOARD_TRUSTED_PROXY_CIDRS=172.18.0.0/16
不要把 0.0.0.0/0 或不受控制的网络写入可信代理范围。
- 不要让 CDN 缓存包含订阅 URL 或用户参数的
/sub请求。 -
explain=true响应带有私有、禁止存储的缓存指令。 - 外部配置错误和安全拒绝也不应被公共缓存复用。
- 反向代理日志可能记录完整请求行;需要在入口层配置脱敏或避免记录查询字符串。
public 安全档位限制请求方可控的私网和本地抓取,但不等于完整身份认证。只允许特定用户使用时,还需要在反向代理增加认证、IP 白名单或其他访问控制。
保护 /dashboard 不能替代保护 /sub。两者是不同访问面。
- 从外部访问
https://sub.example.com/version。 - 确认直连
http://公网IP:25500不可访问。 - 检查启动日志中的最终安全档位。
- 使用公开测试输入执行
/sub。 - 使用
explain=true检查安全策略和目标路径。 - 检查入口日志是否意外保存查询秘密。