feat: mihomo YAML subscription support + flow/fingerprint passthrough

- fetcher: parse mihomo/clash.meta YAML subscriptions (proxies: list),
  auto-detect format (mihomo YAML vs plain vless:// lines)
- config_builder: forward VLESS flow (xtls-rprx-vision) and per-node
  uTLS fingerprint to sing-box (required for Reality+Vision nodes)
- default DNS upstream: udp://10.35.99.172 (public UDP resolvers
  unreachable on this network; old-sub nodes are hostnames)
- Dockerfile: install PyYAML

Verified: 50-node reality+vision subscription works end-to-end
(sing-box check + live SOCKS tunnel); legacy vless:// subs unaffected.
This commit is contained in:
2026-09-09 10:56:11 +03:00
parent 1beb97e367
commit 56f28099c8
6 changed files with 143 additions and 25 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ Connect to `socks5://localhost:1080`.
| `SOCKS_PORT` | no | `1080` | SOCKS5 listen port |
| `SOCKS_USER` | no | `""` | Auth username (leave empty to skip auth) |
| `SOCKS_PASS` | no | `""` | Auth password |
| `DNS_SERVER` | no | `udp://1.1.1.1` | Upstream DNS resolver address (insecure UDP by default) |
| `DNS_SERVER` | no | `udp://10.35.99.172` | Upstream DNS resolver address (insecure UDP by default) |
| `PICK_STRATEGY` | no | `first` | Node selection: `first` (default) or `random` |
| `LOG_LEVEL` | no | `info` | sing-box log level (`debug`, `warn`, `error`) |