v1.9.0 - HTTP/2 & HTTP/3 support for DoH
🌐 Multiple DoH Versions (HTTP/1.1, HTTP/2, HTTP/3) with Auto‑Negotiation
phantomd now supports all major DoH protocols: classic HTTP/1.1, modern HTTP/2 (via httpx), and cutting‑edge HTTP/3 (via QUIC). The new auto mode automatically probes and remembers the best version per upstream, so your server always uses the fastest available transport without manual tuning.
✨ Added
- DoH version selection – new global
doh_versionoption in[advanced]and per‑upstreamdoh_versionkey for[upstreams.xxx]. Supported values:
auto(probe best),1.1(classic),2(HTTP/2),3(HTTP/3).
autois the default; falls back gracefully through 3 → 2 → 1.1. - DoH/3 (HTTP/3) implementation using
aioquic.h3– DNS queries sent via QUIC with proper HTTP/3 framing. - DoH/2 (HTTP/2) implementation using
httpx– persistent, multiplexed connections for lower latency. - Auto‑negotiation cache – probed version is remembered for
doh_auto_cache_ttlseconds (default 3600). Hot‑reloadable. - HTTP/1.1 DoH retained for compatibility and fallback.
- New tests – 5 tests covering auto‑probing, version caching, fallback, explicit version override, and config hot‑reload. Total test suite: 116 tests.
🛠️ Changed
_forward_httpsnow dispatches to_forward_https1,_forward_https2, or_forward_https3based on the resolved version.- Configuration now supports
doh_versionanddoh_auto_cache_ttloptions in[advanced], plus per‑upstream doh_version.
📦 Upgrading
- Update:
./installer.sh --updatethensystemctl restart phantomd - Fresh install:
./installer.sh - To use HTTP/2, ensure
httpxwith H2 support is installed. - To use HTTP/3, ensure
aioquicis installed (same as for DoQ).
Full Changelog: v1.8.0...v1.9.0