UN NewsSomalia looks to the future as the UN's political mission closesPunchAPC chieftain cautions Bayelsa PDP chair against attacks on DiriCNN TürkSon dakika haberi: İstanbul'da 310,5 milyon liralık kaçak elektronik sigara operasyonuThe Jerusalem PostPro-Palestinian group praised by Hamas for using global dockworkers' strike to push Israel boycottInquirerPangasinan gov’t, cops probe alleged child exploitation in Urdaneta City한겨레트럼프 ‘핼러윈 에어포스원 저공비행’ 이벤트에…두려움에 떤 시민들ZDF heuteEntdecken Sie das ZDF-NachrichtenstudioDaily MaverickTHEATRE REVIEW: Into the Woods brings Sondheim’s dark, unhinged fairy tales to Cape TownUOLJovem é espancado por grupo e fica em estado grave em ApucaranaMintDubai Global Village to celebrate UAE Flag Day with 1000 drones on November 3: Check ticket prices, timings and moreColliderPrime Video Officially Revives Ridley Scott’s Dystopian Sci-Fi Universe Next MonthSouth China Morning PostWith ‘Kissinger moment’ over, US and China urged to foster new ‘bridge builders’
The Daily Newsstand · Free, Always
Saturday, October 31, 2026

Написал NetRuleRouter, чтобы сайты, приложения и сети работали через разные подключения без отключения VPN

Translate

Представьте ситуацию: на компьютере включён VPN, зарубежные сервисы работают, но некоторые российские сайты, банки или маркетплейсы начинают просить его отключить.

Выключаете VPN — российские ресурсы открываются, зато часть зарубежных становится недоступной. Включаете обратно — проблема повторяется.

А если одновременно нужны корпоративный VPN, личный VPN, мессенджеры, игры и обычный интернет?

Мне надоело постоянно переключаться между подключениями. Поэтому я начал разрабатывать NetRuleRouter — программу, которая позволяет управлять маршрутизацией трафика по сайтам, приложениям, IP-адресам и сетям.

Причём NetRuleRouter — не VPN-клиент. Он работает поверх уже существующих подключений и позволяет выбирать, через какое из них должен идти определённый трафик.

Разработку я начал 1 апреля 2026 года, первые рабочие версии использовал ещё летом, а теперь выпустил первую публичную альфу NetRuleRouter v0.1.0-alpha.1 для Windows и Linux.

Хочу рассказать, откуда появилась идея, что уже умеет программа, как я использую её сам и почему при таком количестве возможностей это пока именно alpha.

С чего всё началось

В конце марта 2026 года появились сообщения о том, что Минцифры обсуждает с российскими цифровыми платформами ограничения доступа для пользователей с включённым VPN.

30 марта об этом писал «Коммерсантъ». В апреле проблема начала проявляться на практике: по сообщениям РБК от 14 апреля, операторы связи и маркетплейсы стали показывать пользователям рекомендации отключить VPN. 16 апреля РБК сообщил об ограничениях в приложении «Госуслуги».

Это совпало с проблемой, с которой я и раньше периодически сталкивался. Одни ресурсы мне нужны через VPN, другие удобнее открывать напрямую. Иногда дело даже не в блокировках, а в региональных ограничениях и в том, как конкретный сервис определяет местоположение пользователя. Например, когда я отдыхал во Вьетнаме, некоторые российские сайты просили выключить VPN, хотя я вообще его не использовал. Вероятно, сервисы не устраивал иностранный IP-адрес, но объяснение для пользователя выглядело именно так.

Бывает и обратная ситуация: зарубежные сервисы могут отказываться устанавливать соединения с определённых российских IP-адресов. Получается парадокс: интернет на компьютере есть, но для разных ресурсов нужен разный путь к нему.

Конечно, маршрутизация трафика не является новой задачей. Существуют VPN-клиенты с раздельной маршрутизацией, прокси-менеджеры, системные таблицы маршрутов и такие инструменты, как sing-box и mihomo. Но многие из этих решений требуют разбираться в конфигурациях, особенностях конкретного VPN-протокола или правилах сетевой системы.

Мне хотелось отдельное локальное приложение с графическим интерфейсом, где можно выбрать два существующих подключения и указать, какие сайты, программы и сети должны через них работать.

Так 1 апреля и началась разработка NetRuleRouter. Первоначально задача казалась относительно простой. Но довольно быстро появились дополнительные вопросы. Что делать, если VPN отключился? Как быть, если разные сайты используют один IP-адрес? Как маршрутизировать отдельные приложения? Что происходит при пересечении правил? Как не нарушить работу корпоративного VPN? И как пользователю вообще понять, куда ушло конкретное соединение?

Из ответов на эти вопросы постепенно вырос проект, который я сегодня представляю.

Что такое NetRuleRouter

NetRuleRouter — локальный менеджер сетевой политики, который распределяет трафик между двумя назначенными подключениями.

В программе они называются:

  • Основное подключение (Primary) — например, интернет через Ethernet или Wi-Fi.

  • Дополнительное подключение (Secondary) — например, VPN, второй провайдер или ещё один сетевой адаптер.

Пользователь задаёт правила и определяет, какое подключение использовать для определённого назначения.

Например, можно организовать следующую схему:

Ресурс

Маршрут

Российские сайты, банки и маркетплейсы

Основное подключение

ChatGPT, Claude и другие выбранные AI-сервисы

Дополнительное подключение

Сайты торрент-трекеров

Дополнительное подключение

Обмен файлами с торрент-пирами

Основное подключение

Игры и мессенджеры

По выбранным правилам

Отдельные адреса и подсети

Основное или дополнительное подключение

Это только пример. Пользователь сам определяет, какие назначения должны использовать каждый маршрут.

Причём дополнительным подключением не обязательно должен быть VPN. Это может быть второй провайдер, другая сетевая карта или иной подходящий сетевой интерфейс.

NetRuleRouter не является VPN-сервисом, VPN-клиентом, прокси или средством анонимизации.

Он не предоставляет VPN-серверы и не создаёт собственные VPN-туннели. Его задача — управлять трафиком между подключениями, которые уже существуют в операционной системе.

Поэтому не обязательно выбирать, какой режим сегодня нужен всему компьютеру: «через VPN» или «напрямую». Можно указать, какие именно ресурсы должны использовать каждое подключение.

Правила — не только для сайтов

Для меня было важно не ограничиваться примитивным разделением по приложениям.

В NetRuleRouter реализованы семь способов сопоставления трафика:

  1. Точный домен — например, api.example.com.

  2. Домен со всеми поддоменами — *.example.com.

  3. Сайт в разных доменных зонах — example.*.

  4. Точный IPv4- или IPv6-адрес.

  5. Подсеть CIDR или диапазон IP-адресов.

  6. Доменная зона или внутренний доменный суффикс — например, .ru либо .intra.

  7. Приложение — по имени программы, исполняемому файлу или папке.

Каждое правило направляет подходящий трафик через основное или дополнительное подключение. Также можно явно запретить определённые сетевые назначения или приложения.

NetRuleRouter в тёмной теме. Экран управления правилами.

NetRuleRouter в тёмной теме. Экран управления правилами.

Правила могут пересекаться. Например, одно правило направляет всю зону .ru через основной интернет, другое задаёт маршрут для конкретного сайта, а третье относится к программе.

Поэтому движок применяет определённый порядок приоритетов. Более конкретные правила имеют преимущество перед общими, а результат можно проверить в интерфейсе.

Для этого есть отдельный инструмент просмотра пересечений.

Просмотр пересечений правил и их приоритетов.

Просмотр пересечений правил и их приоритетов.

Правила можно импортировать, экспортировать, сохранять в собственные наборы и переносить на другие компьютеры.

Есть и готовые пресеты для разных стран. Например, российский набор содержит правила для отечественных ресурсов, зарубежных социальных платформ, мессенджеров, AI-сервисов и связанных приложений. ChatGPT, Claude, Gemini и ряд других платформ в нём направляются через дополнительное подключение.

При этом пресеты — не универсальные и окончательные списки. Часть их первоначального содержимого подготовлена с помощью ИИ, а доступность сервисов и используемые ими адреса меняются. Поэтому пресеты предназначены для первоначальной настройки и могут редактироваться пользователем.

Что происходит, когда VPN отключается

Это одна из возможностей NetRuleRouter, которая для меня особенно важна. Предположим, я хочу, чтобы Claude или ChatGPT использовались только через выбранное VPN-подключение.

Пока VPN работает, соответствующий трафик направляется через него. Но что делать, если туннель оборвался, VPN-клиент ещё не запустился после включения компьютера или я просто забыл его подключить? Без дополнительной защиты соединение может перейти на основной интернет-канал. Для сервисов с региональными ограничениями такое поведение не всегда желательно. Пользователь может не хотеть, чтобы выбранное приложение неожиданно обращалось к серверу с другим IP-адресом.

Поэтому в NetRuleRouter предусмотрена защита от утечек трафика.

Для новой установки по умолчанию предлагается режим «Только сайты из правил». Он предназначен для того, чтобы назначения, которые правила отправляют через дополнительное подключение, не переходили автоматически на основное при недоступности VPN. При этом остальной интернет продолжает работать через основной канал.

Всего предусмотрено три режима:

Режим

Поведение

Выключена

При недоступности VPN возможен переход трафика на основное подключение

Только сайты из правил

Соединения, защищённые правилами дополнительного маршрута, удерживаются при его недоступности

Всё

Более строгая политика ограничения трафика с предусмотренными исключениями

Настройки защиты от утечек. Для новой установки предлагается режим «Только сайты из правил».

Настройки защиты от утечек. Для новой установки предлагается режим «Только сайты из правил».

Идея простая: если для выбранного сервиса недоступен нужный маршрут, лучше временно не устанавливать соединение, чем автоматически отправлять его напрямую.

При этом важно учитывать ограничения текущей альфы. Например, в режиме «Только сайты из правил» сразу после запуска Windows есть небольшой промежуток до применения политики фоновой службой. Существуют и отдельные особенности DNS, общих IP-адресов и сетевых конфигураций.

Поэтому я не называю защиту абсолютной и не обещаю отсутствие утечек при любых условиях. Известные ограничения подробно описаны в документации.

Почему это не защита от блокировки аккаунта

Здесь стоит отдельно разграничить две вещи: ограничения на уровне сетевого подключения и ограничения на уровне учётной записи.

Хороший пример — недавняя ситуация с Claude.

29 октября 2026 года появились сообщения пользователей о блокировках аккаунтов после подтверждения личности российскими документами, в том числе у некоторых людей, проживающих за пределами России.

При этом точные причины отдельных блокировок не всегда известны. Опрошенные РБК эксперты отметили, что подтверждений целенаправленной массовой кампании исключительно против граждан России пока нет.

Anthropic может учитывать соответствие правилам сервиса, географию доступа, результаты проверки личности и другие обстоятельства.

NetRuleRouter не защищает от таких решений самого сервиса.

Он не меняет данные аккаунта, не проходит проверку личности за пользователя, не отменяет региональную политику платформы и не гарантирует доступ к учётной записи.

Защита от утечек относится именно к сетевой маршрутизации, а не к любым ограничениям сторонних платформ. Это справедливо и для ChatGPT, и для других сервисов, с которыми пользователь работает через выбранное подключение.

Как проверить, куда действительно идёт трафик

Просто добавить правило недостаточно. Нужно ещё иметь возможность проверить, что оно делает. Поэтому в NetRuleRouter появились инструменты диагностики и трассировки соединений.

Трассировка показывает, какие программы устанавливают соединения, к каким адресам они обращаются, через какой маршрут идут и какие соединения блокируются.

Это помогает разобраться в ситуациях, когда один сайт использует несколько доменов: основной сайт может загружаться правильно, но API, авторизация, изображения или другое содержимое обращаться к отдельным адресам.

NetRuleRouter умеет предлагать дополнительные адреса для правил, а окончательное решение об их добавлении принимает пользователь.

Предложения дополнительных адресов для выбранного сайта.

Предложения дополнительных адресов для выбранного сайта.

В трассировке можно посмотреть реальные соединения и результаты их обработки.

Трассировка соединений, в том числе заблокированных.

Трассировка соединений, в том числе заблокированных.

Также есть журналы, диагностика, проверка сайтов и просмотр состояния подключений. История соединений хранится локально. Срок хранения можно настроить, а саму историю — отключить или очистить.

Практический пример: видеосвязь напрямую, облачные сервисы через VPN

Представим обычный рабочий день. У меня открыта среда разработки, работают GitHub и AI-сервисы, параллельно идёт видеоконференция, а в фоне скачиваются обновления или большие файлы.

При этом нет необходимости отправлять весь трафик через одно подключение. В NetRuleRouter можно настроить правила так, чтобы выбранные облачные сервисы и инструменты разработки использовали VPN, а видеосвязь и программы для загрузки файлов — основной интернет.

Это особенно удобно, когда VPN увеличивает задержки или ограничивает пропускную способность. Видеозвонки могут работать напрямую, не завися от качества VPN-подключения, а остальные приложения продолжают использовать назначенные им маршруты.

Причём правила можно задавать не только для приложений целиком, но и для отдельных доменов, IP-адресов и подсетей. Например, один ресурс в браузере будет использовать основной интернет, а другой — дополнительное подключение.

Разумеется, NetRuleRouter не ускоряет интернет сам по себе и не объединяет скорость двух каналов. Он позволяет распределять соединения между ними в соответствии с заданными правилами.

Именно такого поведения я и добивался: чтобы разные сетевые задачи могли выполняться одновременно, не заставляя меня постоянно переключать VPN для всего компьютера.

Личный и корпоративный VPN одновременно

Есть и другой распространённый сценарий: на компьютере уже работает корпоративный VPN, через который доступны внутренние сети компании. При этом пользователь хочет сохранить собственный VPN для других задач. NetRuleRouter рассчитан на работу поверх существующих сетевых подключений, поэтому не требует отключать корпоративный VPN ради личного.

Корпоративное подключение сохраняет собственные маршруты к внутренним сетям. В NetRuleRouter также предусмотрена настройка того, через какое из двух выбранных подключений должен устанавливаться сам корпоративный VPN.

Это полезно, если корпоративный VPN-шлюз доступен только из определённой сети или региона.

Однако здесь есть важный нюанс: NetRuleRouter по-прежнему управляет двумя основными ролями подключения, а не произвольным числом независимых VPN-туннелей. Остальные VPN могут работать рядом, сохраняя собственные маршруты.

Совместимость зависит от конкретных VPN-клиентов и их поведения. Некоторые корпоративные решения самостоятельно меняют таблицы маршрутов, DNS и системные правила фильтрации, поэтому сочетания требуют проверки.

Первая настройка

Для меня было важно, чтобы пользователь не обязан был разбираться в драйверах TAP, Wintun, метриках интерфейсов и системной маршрутизации только ради того, чтобы направить несколько сайтов через VPN.

Поэтому в NetRuleRouter есть мастер первого запуска.

После установки программа предлагает установить и запустить фоновую службу. Именно она применяет сетевые правила. На Windows для её установки один раз потребуются права администратора.

Затем пользователь может выбрать стартовый набор правил: пресет для своего региона, демонстрационный набор, собственные файлы или пустую конфигурацию.

Выбор стартового набора правил.

Выбор стартового набора правил.

Следующий этап — выбор основного и дополнительного подключения.

Мастер первого запуска NetRuleRouter.

Мастер первого запуска NetRuleRouter.

Здесь, кстати, пришлось решать довольно практическую проблему. Некоторые VPN-клиенты создают несколько похожих виртуальных адаптеров и при очередном подключении могут использовать другой. Если программа просто привязалась к первому найденному TAP-адаптеру, это ещё не значит, что именно он будет активен.

Поэтому NetRuleRouter умеет обновлять привязку дополнительного подключения, если VPN перешёл на другой однозначно определяемый адаптер. Если подходящих активных подключений несколько, программа должна запросить выбор пользователя, а не угадывать.

Основное и дополнительное сетевые подключения.

Основное и дополнительное сетевые подключения.

После завершения мастера выбранный набор правил применяется автоматически. Дальше можно добавлять и изменять правила через интерфейс, сохранять собственные наборы или работать с текстовыми файлами напрямую.

При необходимости программа позволяет предварительно просмотреть изменения перед их применением.

Немного о внутреннем устройстве

В основе NetRuleRouter используется Rust. На нём написаны движок сетевой политики и значительная часть внутренних компонентов.

Графический интерфейс построен на Qt 6 / QML и C++.

Кроме него есть два инструмента на Rust:

  • nrr-cli — консольная утилита для управления и автоматизации;

  • nrr-tui — полноценный терминальный интерфейс, созданный с использованием библиотеки ratatui.

TUI позволяет пользоваться программой в том числе на Linux-системах без графического окружения.

На Windows маршрутизация и фильтрация реализуются с помощью системных механизмов, включая Windows Filtering Platform (WFP).

На Linux используются системные маршруты, nftables и служба под управлением systemd.

Общая логика принятия решений отделена от платформенно-зависимых механизмов применения правил.

Отдельного внимания заслуживает работа с DNS. Например, современные сайты часто разделяют один IP-адрес между несколькими доменами. На Windows в NetRuleRouter для более точного разделения таких сайтов реализован механизм виртуальных адресов — fake-IP.

Это лишь небольшая часть технической стороны проекта.

Если аудитории Хабра будет интересно и появится запрос на подробности, я подготовлю отдельную техническую статью об архитектуре NetRuleRouter, механизмах маршрутизации, DNS, fake-IP, WFP, nftables и защите от утечек.

На каких операционных системах работает

Первая публичная альфа доступна для Windows и Linux.

Для Windows 10 и 11 x64 предусмотрены графический интерфейс, трей, фоновая служба, nrr-cli и nrr-tui.

Есть установщик EXE, MSI и переносимый ZIP-архив.

Для Windows ARM64 также опубликованы переносимые сборки, но они пока не проверены на реальном ARM-оборудовании.

В Linux доступны пакеты .deb, .rpm и архивы .tar.gz. Графический интерфейс требует установленного в системе Qt 6.6 или новее. Там, где подходящей версии Qt нет, можно работать через nrr-cli и nrr-tui.

Среди проверенных конфигураций:

Система

Проверенный вариант

Windows 10/11 x64

Полный вариант с GUI

Ubuntu 26.04 LTS

Полный вариант с GUI

Astra Linux 1.7/1.8

Без GUI

РЕД ОС 8

Без GUI

Для других дистрибутивов и архитектур также существуют сборки или заявлена совместимость, но важно различать проверку на настоящей машине и соответствие техническим требованиям.

Подробная таблица есть в документации по поддерживаемым системам. macOS пока не поддерживается.

Несколько месяцев реального использования

Первыми рабочими версиями NetRuleRouter я начал пользоваться ещё летом 2026 года.

В августе опубликовал предварительные исходники на GitHub для самостоятельной сборки. Позже добавил статистику трафика и трассировку соединений, чтобы видеть, что происходит с подключениями.

У меня есть CSV-выгрузка со счётчиками трафика за период с 1 августа по 30 октября 2026 года — 91 календарный день.

За этот период получились следующие объёмы:

Подключение

Входящий и исходящий трафик

Основное

1,42 ТБ

Дополнительное (VPN)

240 ГБ

Всего

1,66 ТБ

Распределение трафика между основным подключением и VPN по данным локальной CSV-выгрузки. Счётчики виртуальных адаптеров, способные дублировать трафик, исключены из расчёта.

Распределение трафика между основным подключением и VPN по данным локальной CSV-выгрузки. Счётчики виртуальных адаптеров, способные дублировать трафик, исключены из расчёта.

В октябре заметен существенный рост трафика по основному подключению. Вероятнее всего, это связано с тем, что я довольно активно скачивал разные медиа файлы и iso образы, а их основной трафик направлялся именно туда. Это предположение по характеру использования компьютера, а не вывод, который программа делает автоматически.

Конечно, такой график не является тестом производительности и не доказывает безошибочную маршрутизацию каждого соединения. Но он показывает, что NetRuleRouter уже используется в реальном повседневном сценарии, а статистика позволяет наблюдать распределение трафика между подключениями.

Почему пока альфа, если возможностей уже столько?

Когда я начинал NetRuleRouter, не предполагал, что к первому публичному выпуску в нём появится столько функций. Я разрабатывал инструмент прежде всего для собственных задач. По мере использования обнаруживались новые сценарии, проблемы совместимости и ограничения, которые хотелось решить.

Так появились расширенные правила, защита от утечек, диагностика, трассировка, статистика трафика, терминальный интерфейс и поддержка Linux.

Но здесь есть принципиальная разница между функциональной готовностью и готовностью к стабильному релизу.

То, что программа работает на моих компьютерах, ещё не означает, что она одинаково надёжно работает со всеми VPN-клиентами, сетевыми адаптерами, драйверами и настройками операционных систем. Для сетевого менеджера это особенно важно.

Ошибка может приводить не просто к закрытию приложения, а к временному отсутствию интернета, нарушению сетевых маршрутов или неожиданному поведению защиты. Именно поэтому первая публичная версия обозначена как alpha, несмотря на достаточно широкий набор возможностей.

Известные ограничения

Я решил не ограничиваться общей фразой «возможны ошибки». В репозитории есть отдельный документ — «Известные ограничения». В нём описаны конкретные ситуации, в которых текущая версия пока работает с ограничениями: запуск компьютера, некоторые сценарии защиты от утечек, DNS, особенности VPN-клиентов, Linux и многопользовательских систем. Для каждого случая объясняется, что происходит и какие действия доступны пользователю.

Особенно рекомендую ознакомиться с этим документом перед использованием строгой защиты от утечек или на компьютере со сложной корпоративной сетевой конфигурацией.

Отдельно опубликована инструкция по восстановлению доступа к сети, если что-то пошло не так.

Что ещё предстоит сделать до стабильной версии

До полноценного стабильного релиза у NetRuleRouter остаётся немало работы. В дорожной карте есть отдельный раздел с требованиями, которые я хочу выполнить до перехода к stable.

Среди них:

  • полноценная проверка IPv6 на реальных сетях;

  • защита выбранных сайтов с первой секунды запуска компьютера;

  • восстановление защиты после перезапуска системного брандмауэра Windows;

  • устранение оставшихся временных промежутков при изменении адресов сайтов;

  • развитие защиты и совместимости на Linux;

  • автоматическая проверка заявленных гарантий перед выпусками.

Помимо этого, запланировано множество улучшений пользовательских возможностей: проверка сайтов через оба подключения, графики трафика непосредственно в программе, улучшенная работа с другими VPN, обновление импортированных наборов правил, уведомления о новых версиях и дополнительные способы установки.

В более отдалённых планах — ограничение скорости по приложениям, сайтам и адресам, расширение возможностей сетевой политики и новые сценарии использования. Список задач большой, и я не хочу назначать дату stable только ради красивого календаря. Для такой программы надёжность важнее скорости выпуска. Приоритеты могут меняться в зависимости от проблем и пожеланий пользователей.

Где скачать NetRuleRouter

Исходный код опубликован на GitHub под лицензией MPL-2.0.

Первая публичная альфа: NetRuleRouter v0.1.0-alpha.1.

Для Windows 10/11 x64 доступны:

Для Linux опубликованы .deb, .rpm и .tar.gz, в том числе варианты без графического интерфейса.

Полезные ссылки:

Пока установщики Windows не подписаны сертификатом разработчика, поэтому Windows может показать предупреждение при запуске. Для проверки опубликованных файлов предусмотрены контрольные суммы SHA256 и подтверждения происхождения сборок GitHub.

Документация доступна на русском и английском языках.

Для вопросов, обсуждений, сообщений об ошибках и предложений создано Telegram-сообщество NetRuleRouter с русскоязычными и англоязычными разделами. Ошибки и предложения по развитию можно также оформлять через GitHub Issues.

Вместо заключения

В начале апреля я хотел решить одну довольно простую проблему: перестать постоянно включать и выключать VPN ради разных сайтов.

За несколько месяцев из этой идеи вырос NetRuleRouter — программа, с помощью которой можно самостоятельно задавать маршруты для сайтов, приложений и сетей, использовать существующие подключения и проверять, что происходит с трафиком.

Первая публичная альфа — важный этап, но далеко не конец разработки.

Мне особенно интересно, какие сценарии встречаются у других пользователей. Возможно, у вас одновременно работают несколько VPN, используются два провайдера, есть сложные корпоративные сети или приложения, для которых обычного split tunneling недостаточно.

Буду рад вопросам, сообщениям об ошибках и предложениям по развитию проекта.

А если техническая сторона заинтересует аудиторию Хабра, в следующем материале можно подробно разобрать архитектуру NetRuleRouter — от выбора правила до системной маршрутизации, DNS, fake-IP и защиты от утечек.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.