Skip to content

Add dropweb Mihomo RU Cascade template (auto-failover) - #85

Open
enkinvsh wants to merge 1 commit into
remnawave:mainfrom
enkinvsh:add-dropweb-mihomo-ru-cascade
Open

Add dropweb Mihomo RU Cascade template (auto-failover)#85
enkinvsh wants to merge 1 commit into
remnawave:mainfrom
enkinvsh:add-dropweb-mihomo-ru-cascade

Conversation

@enkinvsh

@enkinvsh enkinvsh commented Jul 5, 2026

Copy link
Copy Markdown

What

New MIHOMO subscription template by-dropweb/subscription-templates/mihomo-ru-cascade.yaml + registry entry in subscription-templates-list.json.

Why another RU template

Unlike the existing select-based templates, routing here is fully automatic — users never pick a server manually:

  • ▶️ YouTube / 💬 Discord → fallback [🌀 Cascade → ⚡ Fastest]: cascade nodes (RU-entry → EU-exit) preferred; automatic failover to the fastest direct node when the cascade dies; automatic return when it recovers
  • 🌍 VPN → fallback [⚡ Fastest → 📶 First Available] — emergency net when the whole main pool is down
  • REJECT sentinel keeps an empty Cascade group honestly DEAD (no live COMPATIBLE stub), so the template degrades gracefully on panels without cascade nodes — YouTube/Discord simply ride ⚡ Fastest

Health-check parameters verified against mihomo core sources

Documented in the template header:

  • uniform expected-status: 204 across all groups sharing one health-check url — per-url alive state is stored keyed by url (adapter.go), mixed criteria cause alive flapping between groups
  • parent group url must match child group url, otherwise the child gets falsely marked dead for the parent
  • large intervals (60-120s) + lazy: true are safe because failover is event-driven (groupbase.go onDialFailed: real-traffic failures trigger an immediate health check) — battery-friendly on mobile without losing switching speed
  • timeout: 8000 on the cascade path — a 2-hop probe under load doesn't fit the default 5s, causing false DEAD → flapping

RU specifics

  • fake-ip + respect-rules DNS, DoT direct resolvers, bootstrap DNS with fallbacks resilient to DoH blocking
  • QUIC UDP/443 reject with a Discord-voice exception (no-resolve logic rule, voice on UDP/443 keeps working)
  • legiz ru-bundle / re:filter rule-sets, Android exclude-package list, rules ordered so RU domains match without forced DNS resolution

Cascade node-name filters are clearly marked for operators to adjust (>>> ПОМЕНЯЙТЕ ПОД СЕБЯ <<<); comments are in Russian, consistent with the other RU templates.

Running in production on our fleet (dropweb.org).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant