
DNS-прокси, простой и быстрый, с не такими уж простыми возможностями. Ориентирован на маршрутизируемую пересылку DNS, фильтрацию и родительский контроль.
DNS-прокси, который даёт вам реальный контроль над домашней сетью.
Я много лет проработал консультантом на «взрослой» арене сетей и безопасности. DNS-безопасность была и остаётся моей повседневной работой, а также любимым хобби для экспериментов. Поскольку теперь у меня есть дети и мне нужно быть ответственным родителем, я взял на себя задачу фильтровать для них большой злой интернет. Так я создал sdproxy (Simple DNS Proxy). Он привносит корпоративные/«взрослые» защиты/методы/точность на уровень домашней сети (вроде того).
Прокси написан на Go и компилируется в компактный бинарник для дешёвых роутеров. Здесь НЕТ облачных подписок или ежемесячных платежей. Он говорит на всех разновидностях DNS и включает адаптивный контроль допуска для стабильности. Это просто компактная (вроде того), злая, голландски выверенная точность для гостиной. Только вы, один исполняемый файл и yaml-файл.
И помните... Это всегда DNS!
Примечание: Файл full_reference_config.yaml в этом репозитории (также встроенный в бинарник через sdproxy --example-config) всегда более актуален, чем этот README. Если сомневаетесь, проверяйте там.
DNS — это телефонная книга интернета: каждое устройство в вашей сети ищет имя, прежде чем куда-либо подключиться.
sdproxy находится посередине этого процесса, на вашем роутере, и позволяет вам решать, что произойдёт дальше: кэшировать, блокировать, направлять к другому резолверу, применять продвинутые ML-модели безопасности или устанавливать ограничения по времени для каждого ребёнка. Никаких облачных подписок, ежемесячных платежей и внешних сервисов, которые могут упасть.
Он написан на Go, компилируется в один бинарник и достаточно компактен, чтобы работать на дешёвых домашних роутерах (OpenWrt на TP-Link, GL.iNet или NetGear, pfSense, OPNsense или просто на обычном Linux-компьютере).
См. KEY_ADVANTAGES.md, чтобы узнать о ключевых преимуществах по сравнению с альтернативами.
Старый добрый UDP/TCP (порт 53), шифрованный DNS-over-TLS (DoT), DNS-over-HTTPS (DoH) и DNS-over-QUIC (DoQ).
sdproxy нативно разбирает заголовки Alt-Svc и параметры ALPN SVCB/HTTPS, чтобы на лету бесшовно обновлять стандартные потоки DoH до высокопроизводительных соединений HTTP/3 (QUIC).Защищает ваш просмотр от глубокой инспекции пакетов провайдером, шифруя TLS Server Name Indication (SNI).
sdproxy действует как полноценный ECH-сервер, расшифровывая client hello и нативно транслируя свои ключи в вашу локальную сеть через DDR (_dns.resolver.arpa SVCB/HTTPS) и HTTPS-эндпоинты /.well-known/origin-svcb / /.well-known/ech.sdproxy активно опрашивает их записи HTTPS/SVCB (и L7-фолбэки .well-known), извлекает их ECH-ключи и полностью автономно защищает TLS-рукопожатие.Нативный механизм вывода ML-логистической регрессии с нулевым выделением памяти работает на горячем пути. Он извлекает энтропию Шеннона, перекос гласных/согласных, шаблоны конечных цифр и цепочки согласных, чтобы мгновенно обнаруживать и блокировать алгоритмически генерируемые домены (DGA), используемые ботнетами, вредоносным ПО и инфраструктурой C2.
_for-sale. по RFC 10023 и припаркованных доменов_for-sale. по RFC 10023 (server.for_sale): проверяет _for-sale.<qname> и _for-sale.<apex> на наличие действительных TXT-записей RFC 10023 (v=FORSALE1;), используя 64-шардовый кэш вердиктов, полный обход кэша по родительской цепочке и объединение SingleFlight. Поддерживает disabled, BLOCK, DROP, LOG или любой стандартный DNS RCODE.server.parked): обнаруживает припаркованные домены, промежуточные родительские домены и апексы eTLD+1, активно проверяя и пассивно инспектируя авторитетные записи NS, SOA, TXT, CNAME и A/AAAA на предмет распространённых провайдеров парковки доменов и вторичной монетизации (Sedo, Bodis, ParkingCrew, Above.com, Dan.com, Afternic, CashParking, HugeDomains, Squadhelp/Atom, Uniregistry, ParkLogic, RookMedia и т. д.).(client/subnet, apex domain) в настраиваемом временном окне (с опциональным exempt_shared_hosting), чтобы перехватывать медленное и малозаметное DNS-туннелирование и эксфильтрацию инфостилерами, не допуская отказа в обслуживании между клиентами.rrs:) с поддержкой регулярных выраженийrtype_policy), суффиксов доменов, IP/CIDR или регулярных выражений (/pattern/) через встроенную конфигурацию, локальные файлы или удалённые URL.rrs:): Переопределение глобальных или групповых доменов (точных или по регулярному выражению /pattern/) статическими адресами IPv4/IPv6 или прозрачными рекурсивными CNAME-алиасами (например, принудительное включение SafeSearch).sdproxy не просто слепо пересылает запросы; он динамически оценивает вышестоящие серверы.
max_secure_upstreams (по умолчанию 5) работоспособных серверов в группе. Глубоко инспектирует отпечатки канонических RRset (цепочки CNAME, конечные IP-эндпоинты, SVCB/HTTPS, состояние DNSSEC) с поддержкой предпочтений fastest, ordered и consolidate (объединённый набор ответов). В режиме strict требуется 100% участие и эквивалентность ответов; в режиме loose используется большинство работоспособных ответчиков. Отбрасывает или блокирует ответ, если вышестоящие серверы расходятся во мнениях или возвращают отравленный NULL-IP.Ответили на что-то недавно? Отдайте это из кэша. sdproxy использует 32 криптографически инициализированных сегмента памяти с опциональным устойчивым к сбоям дисковым сохранением между перезагрузками (включая отпечаток конфигурации маршрутов). Если запись истекает, оставаясь популярной, sdproxy запускает фоновую предзагрузку, чтобы ваши устройства никогда не замечали промах кэша. Полностью поддерживает RFC 8767 Stale-Serving, строгие границы истечения DNSSEC RRSIG и резервные варианты при сбоях serve_stale_infinite.
Укажите ему на ваши файлы аренды DHCP и /etc/hosts, и он будет отвечать на локальные запросы имён (ваш NAS, ваш принтер, ваш Pi), не беспокоя вышестоящий резолвер и не утекая запросы LAN наверх. Работает с dnsmasq, ISC DHCP, Kea и odhcpd.