Skip to content

Add Mihomo (RU bridge) template - #73

Open
config-curator wants to merge 2 commits into
remnawave:mainfrom
config-curator:main
Open

Add Mihomo (RU bridge) template#73
config-curator wants to merge 2 commits into
remnawave:mainfrom
config-curator:main

Conversation

@config-curator

@config-curator config-curator commented May 11, 2026

Copy link
Copy Markdown

Why?

Russian users need stable access to blocked services (YouTube, Telegram, Discord, AI), but face several challenges:

  • Direct Western nodes get detected by DPI and blocked
  • Russian apps on user devices (banking, government services, taxi apps) leak the exit node's IP via ipify/2ip, getting nodes into RKN blocklists
  • VPN routing of Apple Push (iOS) and FCM (Android) causes notification delays
  • After Discord's migration to Cloudflare (Feb 2026), older configs partially stopped working

This template addresses all four issues with a client-side mihomo config — no server-side changes required.

Architecture: client → RU node (dialer-proxy with smux:h2mux) → exit nodes.

Pros:

  • Exit-node IP leak protection — apps_ipcheck (30+ IP checkers) routed to DIRECT, with matching DNS policy and fake-ip-filter
  • Apple Push (5223, push.apple.com, 17.0.0.0/8) and FCM (5228-5230, fcm.googleapis.com) routed to DIRECT to prevent notification delays
  • Discord routing covers the Cloudflare migration (Feb 2026): wide cloudflare rule-set + UDP 50000-50100 / 19200-19500
  • Anti-detection: mixed-port: 0, allow-lan: false — no SOCKS/HTTP port exposed on localhost that scanners can detect
  • Extensible structure — additional exit regions are picked up automatically via remnawave include-proxies
  • No manual edits required: Remnawave auto-prefixes host names with country flags by IP geolocation; the bridge provider uses exclude-filter: '🇷🇺' to separate the RU bridge node from exit nodes

Cons:

  • Requires at least one RU node + one exit node (cannot be used with Western nodes only)
  • The double chain adds ~30-50ms latency
  • smux:h2mux works only for TCP; UDP goes through the RU node without multiplexing
  • Users cannot check their IP via ipify/2ip/ifconfig.me — they'll see their real IP (this is a feature, not a bug, but worth informing users)

Requirements: one RU node (auto-tagged 🇷🇺 by geolocation) + one or more exit nodes, all in the same Internal Squad.

The template is used in a small private deployment. YAML inline comments (in Russian) explain each non-trivial setting.

Open to feedback and changes.


🇷🇺 На русском

Why?

Российским пользователям нужно стабильное соединение с заблокированными сервисами (YouTube, Telegram, Discord, AI), но при этом:

  • Прямые западные ноды детектируются DPI и блокируются
  • Российский софт (банки, госуслуги, такси) на устройстве может палить exit-ноду через ipify/2ip — нода попадает в РКН-банлист
  • На iOS Apple Push и на Android FCM через VPN ведут к задержкам уведомлений
  • Discord после миграции на Cloudflare (февраль 2026) частично перестал работать через старые правила

Этот шаблон закрывает все четыре проблемы клиентским mihomo-конфигом без правок на стороне сервера.

Архитектура: клиент → RU-нода (dialer-proxy с smux:h2mux) → exit-ноды.

Pros:

  • Защита exit-нод от утечки IP — apps_ipcheck (30+ IP-чекеров) маршрутизируется в DIRECT, с соответствующей DNS-policy и fake-ip-filter
  • Apple Push (5223, push.apple.com, 17.0.0.0/8) и FCM (5228-5230, fcm.googleapis.com) в DIRECT, чтобы пуши не тормозили через VPN
  • Discord под миграцию на Cloudflare (февраль 2026): широкий cloudflare rule-set + UDP 50000-50100 / 19200-19500
  • Антидетект: mixed-port: 0, allow-lan: false — без открытого SOCKS/HTTP порта на localhost, который палится сканерами
  • Расширяемая структура — дополнительные exit-регионы подхватываются автоматически через remnawave include-proxies
  • Никаких ручных правок: Remnawave автоматически добавляет флаги стран в имена хостов по геолокации IP, bridge-провайдер по exclude-filter: '🇷🇺' отделяет RU-мост от exit-нод

Cons:

  • Нужна минимум одна RU-нода в инфраструктуре + одна exit-нода (нельзя использовать только западные ноды напрямую)
  • Двойная цепочка добавляет ~30-50ms latency
  • smux:h2mux работает только для TCP; UDP идёт через RU-ноду без мультиплексирования
  • Юзер не сможет проверить свой IP через ipify/2ip/ifconfig.me — увидит свой реальный (это feature, не bug, но юзеру стоит сказать)

Требования: одна RU-нода (автоматически помечается 🇷🇺 по геолокации) + одна или несколько exit-нод, все в одном Internal Squad.

Шаблон используется в небольшом приватном деплое. Комментарии внутри YAML объясняют каждую нетривиальную настройку.

Открыт к фидбеку и правкам.

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