doh-stub/README.md

34 lines
1.4 KiB
Markdown
Raw Normal View History

2026-07-19 20:21:41 +05:00
# doh-stub
2026-07-19 20:47:23 +05:00
[![CI](https://github.com/ImSavsis/doh-stub/actions/workflows/ci.yml/badge.svg)](https://github.com/ImSavsis/doh-stub/actions/workflows/ci.yml)
[![license](https://img.shields.io/github/license/ImSavsis/doh-stub.svg)](https://github.com/ImSavsis/doh-stub/blob/master/LICENSE)
2026-07-19 20:21:41 +05:00
локальный DNS-резолвер на C++, который сам ходит наружу по DNS-over-HTTPS. провайдер/DPI видит только HTTPS к cloudflare, а не голые DNS-запросы.
```mermaid
sequenceDiagram
OS->>doh-stub: обычный DNS-запрос (UDP)
doh-stub->>Cloudflare: тот же запрос, но внутри HTTPS POST
Cloudflare->>doh-stub: ответ внутри HTTPS
doh-stub->>OS: обычный DNS-ответ (UDP)
```
## сборка
```
cmake -B build
cmake --build build --config Release
```
## юзать
```
build\Release\dohstub.exe --port 5300
```
по умолчанию слушает `127.0.0.1:5300` и форвардит на `cloudflare-dns.com`. чтобы реально подменить системный DNS — нужен порт 53 и админ, плюс прописать `127.0.0.1` в настройках сети.
## что не умеет
не кэширует ответы, каждый запрос — новый HTTPS-коннект. для личного использования хватает, для нагрузки — нет.