Skip to content

Commit e6b6f38

Browse files
committed
docs(proxy): surface QUIC policy diagnostics
Expose the local QUIC policy decisions added to the SOCKS5 UDP relay so users can tell when fallback steering is active. The desktop traffic panel now shows the number of UDP/443 datagrams dropped by block_quic and the number of DNS HTTPS/SVCB questions answered locally. Document the behavior in the main guide without expanding the troubleshooting section into a new feature walkthrough. The note explains that block_quic now covers both UDP/443 datagrams and DNS HTTP/3 advertisement hints, causing browsers to fall back to TCP/HTTPS sooner. Add block_quic to the primary Apps Script and Full Mode TOML examples so new configs make the default traffic policy explicit near the listener and SOCKS settings.
1 parent 2cd395d commit e6b6f38

4 files changed

Lines changed: 11 additions & 0 deletions

File tree

config.example.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ listen_host = "127.0.0.1"
1010
listen_port = 8085
1111
socks5_port = 8086
1212
verify_ssl = true
13+
# Suppress QUIC UDP/443 and DNS HTTPS/SVCB hints so browsers fall back to TCP.
14+
block_quic = true
1315

1416
[network.hosts]
1517

config.full.example.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ listen_host = "127.0.0.1"
1010
listen_port = 8085
1111
socks5_port = 8086
1212
verify_ssl = true
13+
# Suppress QUIC UDP/443 and DNS HTTPS/SVCB hints so browsers fall back to TCP.
14+
block_quic = true
1315

1416
[network.hosts]
1517

docs/guide.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,8 @@ Memory footprint ~15–20 MB resident — fine on anything ≥128 MB RAM. No UI
317317
- **`mhrv-rs test-sni`** — parallel TLS probe of every SNI name in your rotation pool against `google_ip`. Tells you which front-domain names pass through your ISP's DPI. UI has same thing in **SNI pool…** window with checkboxes, per-row **Test** buttons, and **Keep ✓ only** to auto-trim.
318318
- **Periodic stats** logged every 60 s at `info` level (relay calls, cache hit rate, bytes relayed, active vs blacklisted scripts). UI shows live.
319319

320+
When `block_quic = true`, the SOCKS5 UDP relay drops UDP/443 datagrams and answers DNS HTTPS/SVCB (type 65/64) questions with an empty successful response. Browsers then skip HTTP/3 advertisement and fall back to TCP/HTTPS sooner, without forwarding those QUIC discovery packets through the relay.
321+
320322
### SNI pool editor
321323

322324
By default, mhrv-rs rotates through `{www, mail, drive, docs, calendar}.google.com` on outbound TLS to your `google_ip`, to avoid fingerprinting one name too heavily. Some may be locally blocked (e.g. `mail.google.com` has been targeted in Iran at various times).

src/bin/ui.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,6 +1193,11 @@ impl eframe::App for App {
11931193
),
11941194
("cache size", format!("{} KB", s.cache_bytes / 1024)),
11951195
("bytes relayed", fmt_bytes(s.bytes_relayed)),
1196+
("QUIC drops", s.policy_quic_udp_drops.to_string()),
1197+
(
1198+
"HTTPS RR",
1199+
s.policy_https_rr_suppressed.to_string(),
1200+
),
11961201
(
11971202
"active scripts",
11981203
format!(

0 commit comments

Comments
 (0)