Настройки DNS разбросаны по Windows
Переключение резолверов, их тестирование, восстановление после сбоев и правила для отдельных доменов обычно требуют нескольких системных инструментов и повторных действий с правами администратора.
Стабильная версия · v1.5.0> windows / управление dns
Быстрое переключение DNS-профилей в Windows: приложение, системный трей, CLI, диагностика, автоматическое переключение при сбоях и Split DNS.
DnsSwitcher хранит переиспользуемые DNS-профили, применяет или сбрасывает их на выбранных сетевых адаптерах Windows, выполняет диагностику DNS, сайтов и производительности и добавляет необязательные DNS Health Failover и Split DNS на базе NRPT. Привилегированные операции можно передать Windows Agent через Named Pipes.

> контекст
Проект объединяет повседневное переключение, диагностику, привилегированные системные операции и сценарии восстановления в одном Windows-инструменте, сохраняя общую модель профилей для приложения, системного трея и CLI.
Переключение резолверов, их тестирование, восстановление после сбоев и правила для отдельных доменов обычно требуют нескольких системных инструментов и повторных действий с правами администратора.
WPF-приложение, системный трей и CLI используют общее ядро и Windows-инфраструктуру. Привилегированные изменения могут выполняться отдельной службой Agent, поэтому пользовательский интерфейс не обязан постоянно работать с повышенными правами.
> возможности
Стабильный релиз покрывает полный рабочий сценарий приложения и системного трея, проверенный для v1.5.0.
Создание, редактирование, импорт, экспорт, применение и возврат к автоматическому DNS для выбранных сетевых адаптеров.
WPF-приложение, настраиваемое меню системного трея и CLI для автоматизации и диагностики.
Проверка DNS, доступности сайтов и тесты производительности для сравнения поведения и производительности резолверов.
Необязательный мониторинг с порогами ошибок и восстановления, задержкой между переключениями и упорядоченной цепочкой резервных профилей и резервными профилями.
Реальные правила Windows NRPT для направления выбранных пространств имён через конкретные DNS-профили.
Привилегированная служба Windows, доступная через Named Pipes, чтобы UI и Tray не работали постоянно от администратора.
Русский и английский интерфейс, темы System / Light / Dark и проверка масштабирования Windows.
Поиск стабильных GitHub Releases, строгий выбор установщика и проверка SHA-256 перед запуском.
Самодостаточный установщик Inno Setup и portable ZIP без отдельной установки .NET Desktop Runtime.
$ поток
UI, системный трей и CLI используют общую прикладную логику. Windows-реализации и привилегированные операции вынесены в отдельные слои.
> интерфейс
Реальные скриншоты запущенной версии v1.5.0 из репозитория. Изображения показываются без принудительной обрезки.
$ архитектура
Решение отделяет общую прикладную логику от Windows-реализаций, привилегированных операций и пользовательских интерфейсов.
Модели, абстракции, валидация, orchestration DNS/профилей, SemVer и контракты обновлений.
Протокол запросов и ответов для взаимодействия с привилегированным Agent.
Windows DNS и NRPT, локальное JSON-хранилище, клиент Agent, загрузка обновлений, проверка контрольной суммы и запуск установщика.
Главное приложение, настройки, разделы «О программе» и «Помощь», диагностика, ручная проверка обновлений, редакторы Health и Split DNS.
Быстрые действия с профилями/системой и ограниченная по частоте автоматическая проверка обновлений и применение настроек меню без перезапуска.
Windows Service + Named Pipe server для привилегированных DNS/NRPT/service операций.
> инженерные решения
Архитектура делает состояние явным, упрощает восстановление и предпочитает штатные механизмы Windows скрытым фоновым обходам.
Agent выполняет привилегированные операции как Windows Service, а UI/Tray/CLI общаются с ним через версионируемый протокол Named Pipes.
DNS Health Failover переключает профиль только после заданного порога ошибок, выдерживает заданный интервал между переключениями и требует успешных проверок для возврата в исправное состояние.
NRPT даёт штатную маршрутизацию пространств имён Windows без перенастройки системного DNS на localhost и без отдельного DNS-демона.
Клиент принимает только ожидаемые файлы релиза GitHub по HTTPS и не запускает установщик, пока SHA-256 не совпадёт с SHA256SUMS.txt.
Установщик и portable ZIP включают необходимую среду выполнения .NET и уменьшают зависимости от состояния целевой машины.
Профили, UI/Tray-настройки, состояние Health, правила Split DNS и состояние проверки обновлений находятся в data/config и сохраняются при обычном обновлении.
> технологии
> приватность
ЛОКАЛЬНЫЕ ДАННЫЕDnsSwitcher не требует облачного аккаунта. Профили, настройки, служебное состояние и логи хранятся локально. Автоматическая проверка обновлений обращается только к настроенному публичному источнику GitHub Releases и может быть отключена.
> безопасность
ЯВНЫЕ ГРАНИЦЫКлиент обновлений не содержит встроенного PAT/OAuth-учётных данных. Привилегированные DNS/NRPT-операции можно изолировать в службе Agent, а скачанный установщик проверяется до запуска.
> ограничения
Проект предназначен только для Windows x64. Split DNS зависит от NRPT и не гарантирует контроль приложений, которые используют собственный DNS/DoH. Точная минимальная версия Windows отдельно не зафиксирована в метаданных проекта.
$ стабильный_релиз
v1.5.0 — текущий стабильный релиз для Windows x64. Финальная проверка охватила UI, Tray, CLI, Agent, DNS Health, Split DNS, установщика и portable-пакета, локализацию, масштабирование и обновление поверх v1.4.1 с сохранением данных.
B58E03CB8CAA75F43068A920FCC3163E1E13A5D8B62639162E861A4DC6EAC90E5AD5D8D0626E82203F61CD88F53D58C7C4CC5D6F9F01F40AB50C22AC679139F2> ссылки проекта
GitHub остаётся источником истины для кода, релизов, задач, архитектуры, результатов тестирования и описаний релизов.