-
Notifications
You must be signed in to change notification settings - Fork 113
Outbound Proxy
SubConverter-Extended 把不同类型的后端下载分开配置,避免一个模糊的代理字符串控制所有流量。
[common]
proxy_config = "SYSTEM"
proxy_ruleset = "SYSTEM"
proxy_subscription = "NONE"
proxy_bypass = "PRIVATE"| 配置项 | 作用范围 |
|---|---|
proxy_config |
外部配置、远程基础模板、模板 fetch、定时脚本、QuickJS 默认抓取、GeoIP 辅助和 Gist/API 请求 |
proxy_ruleset |
需要后端下载和转换的规则集 |
proxy_subscription |
由后端展开的订阅,例如 list=true 或服务端解析目标 |
Mihomo、Surge、Quantumult X、Loon、Surfboard 或 Stash 客户端后续更新原生远程资源时,不经过后端进程,因此不受这些设置控制。
| 值 | 策略 | 行为 |
|---|---|---|
空值或 NONE
|
Direct | 明确禁用当前请求的 libcurl 环境代理;NONE 不区分大小写 |
SYSTEM |
System | 使用平台系统代理;类 Unix 系统读取常见代理环境变量,Windows 读取启用的 Internet Settings |
http://...、https://...、socks4://...、socks4a://...、socks5://...、socks5h://...
|
Explicit | 使用明确代理 URI,并应用 proxy_bypass
|
cors:https://... |
Cors | 兼容 HTTP CORS 中继;它不是 libcurl 代理 |
非空但格式错误的值会使配置加载失败,不会静默变成直连。
proxy_bypass 只作用于明确代理 URI,不改变 SYSTEM、NONE 或 cors:。
| 规则 | 直连范围 |
|---|---|
LOOPBACK |
localhost、.localhost、127.0.0.0/8、::1/128
|
PRIVATE |
LOOPBACK 加 RFC 1918 和 IPv6 ULA |
LAN |
PRIVATE 加链路本地、.local 和 .home.arpa
|
CGNAT |
增加 100.64.0.0/10
|
CIDR:address/prefix |
增加指定 IPv4/IPv6 网段;拒绝 /0
|
DOMAIN:name |
增加域名及其标签边界子域名;不支持通配符 |
示例:
[common]
proxy_config = "socks5h://127.0.0.1:1080"
proxy_ruleset = "socks5h://127.0.0.1:1080"
proxy_subscription = "NONE"
proxy_bypass = "LAN,CGNAT,CIDR:10.200.0.0/16,DOMAIN:corp.example"最多配置 64 条自定义 CIDR: 和 DOMAIN:。未知、空、通配、格式错误或过宽的 /0 规则会让配置加载失败。
-
socks5://:后端本地解析目标域名; -
socks5h://:由 SOCKS 代理解析目标域名。
远程解析不能替代应用和网络层的 SSRF 防护。应用无法观察代理端最终解析地址时,不能仅依赖 socks5h 建立完整目标允许列表。
public 和 strict 会在传输前拒绝公开请求中的回环、私网和其他受限目标,并忽略公开请求利用 proxy_bypass 直连这些目标的尝试。
可信配置抓取可以按部署者配置使用 bypass。lan 接受的请求也可能使用 bypass,因此增加 LAN、自定义 CIDR 或内部域名属于明确的信任授权。
远程 TLS 证书和主机名校验默认开启:
[advanced]
allow_insecure_tls = false不要把 allow_insecure_tls=true 当作网络失败的通用解决办法。只在受控兼容调查期间临时使用,并在问题处理后恢复校验。
官方 Windows 便携包使用 Windows 原生证书存储。企业或私有 CA 应安装到正确的 Windows 信任存储,而不是关闭校验。
幂等 GET/HEAD 在可恢复的 DNS、连接、超时、发送、接收或部分传输错误后可以进行一次短间隔重试。不会重试:
- 认证失败;
- TLS 校验失败;
- 安全策略拒绝;
- URL 格式错误;
- HTTP 错误状态;
- POST/PATCH。
重试不会把明确代理失败自动降级成直连。
Verbose 日志和 explain=true 会显示 Direct、System、Explicit 或 Cors,以及脱敏后的协议、主机、端口和错误类别。代理凭据、认证头和常见令牌参数会被隐藏。
排查步骤:
- 确认是哪一类请求失败。
- 检查对应
proxy_*值。 - 检查
proxy_bypass是否符合预期。 - 使用
explain=true查看最终策略。 - 检查 TLS、DNS、代理日志和防火墙。