Утечка DNS через прокси: как проверить и закрыть за две минуты
Утечка DNS через прокси — ситуация, когда страницы открываются через прокси, а запросы «какой IP у этого домена» по-прежнему уходят на DNS-сервер вашего провайдера. IP в проверках чужой, а резолвер свой: сайт видит немецкий адрес и, например, DNS домашнего провайдера из Самары. Проверяется это за минуту, а закрывается обычно одной галочкой или одной буквой в адресе прокси.
Почему возникает утечка DNS через прокси
Прежде чем соединиться с сайтом, программа должна превратить домен в IP-адрес. Вопрос в том, кто это делает — ваш компьютер или прокси-сервер.
- HTTP-прокси. Браузер отправляет прокси команду
CONNECT example.com:443с именем домена, и адрес ищет уже прокси. В обычном браузерном сценарии утечки здесь, как правило, нет. - SOCKS5 с локальным резолвом. Программа сама спрашивает DNS у провайдера и передаёт прокси готовый IP. Трафик идёт через прокси, а список доменов, которые вы открываете, — мимо него. Это и есть классическая утечка.
- SOCKS5 с удалённым резолвом. Программа передаёт прокси имя домена, резолв происходит на стороне сервера. Утечки нет.
Отсюда главный вывод: утечка почти всегда связана не с самим прокси, а с настройкой клиента. Один и тот же SOCKS5 в одной программе течёт, в другой — нет.
Как проверить утечку за минуту
Подключите прокси и откройте один из сервисов: browserleaks.com/dns, dnsleaktest.com (кнопка Extended test) или ipleak.net. Сервис заставит браузер разрешить несколько случайных поддоменов и покажет, с каких DNS-серверов пришли запросы.
Как читать результат:
| Что видно в списке DNS | Вывод |
|---|---|
| Серверы вашего провайдера и вашего города | Утечка, резолв идёт локально |
| Серверы в стране прокси или у хостинга, где он стоит | Всё в порядке |
| Публичный резолвер (Google, Cloudflare) рядом с прокси | Нормально, это резолвер сервера |
| Публичный резолвер в вашем регионе | Скорее всего, в системе или браузере включён свой DNS и он идёт мимо прокси |
Одновременно посмотрите на строку с IP: она должна совпадать с прокси. Если IP ваш домашний — это уже не утечка DNS, прокси просто не подхватился, и разбираться надо по инструкции по проверке прокси.
Для программ без интерфейса проверка делается через curl. Сравните два варианта:
curl -x socks5://user:pass@185.10.20.30:8080 https://ifconfig.co/json
curl -x socks5h://user:pass@185.10.20.30:8080 https://ifconfig.co/json
Оба вернут IP прокси, но в первом случае домен ifconfig.co резолвит ваш компьютер, во втором — прокси. Буква h на конце схемы и есть переключатель удалённого DNS.
Как закрыть утечку в браузерах
Firefox
Настройки → Основные → Параметры сети → Настроить. После выбора Ручная настройка прокси и SOCKS v5 внизу окна поставьте галочку Отправлять DNS-запросы через прокси при использовании SOCKS v5. За неё отвечает параметр network.proxy.socks_remote_dns в about:config — он должен быть true.
Chrome и браузеры на Chromium
Отдельной галочки нет. С SOCKS5 Chrome передаёт прокси имена доменов, так что резолв обычно и так удалённый. Если проверка всё же показывает ваш регион, первым делом посмотрите пункт Настройки → Конфиденциальность и безопасность → Безопасность → Использовать безопасный DNS: выключите его и повторите проверку. Второй частый виновник — VPN-расширение или системный VPN, работающие параллельно с прокси. Подробнее о вариантах подключения — в инструкции по настройке.
Антидетект-браузеры
Dolphin Anty, AdsPower, Octo Browser и аналоги резолвят через прокси профиля по умолчанию. Если проверка всё же показывает ваш DNS, чаще всего прокси в профиле не сохранился или вставлен с ошибкой в типе. Заодно посмотрите на WebRTC: это отдельная утечка, она выдаёт не DNS, а сам IP. Как связка прокси и антидетекта работает в целом, описано в разделе прокси для антидетект-браузеров.
Как закрыть утечку в программах и скриптах
- curl:
socks5h://вместоsocks5://, или флаг--socks5-hostname. - Python requests (нужен пакет
requests[socks]): в словаре прокси указывайтеsocks5h://user:pass@host:port. Сsocks5://домены резолвятся локально. - Proxifier: Profile → Name Resolution → выбрать Resolve hostnames through proxy.
- Системный прокси Windows (Параметры → Сеть и Интернет → Прокси-сервер → Настройка прокси вручную) задаёт только HTTP-прокси, и каждая программа сама решает, использовать ли его. Для надёжной работы лучше указывать прокси в настройках конкретного приложения.
Если пользуетесь HTTP вместо SOCKS5, удалённый резолв чаще всего получается сам собой. На прокси ModJus оба протокола работают на одном адресе, поэтому при сомнениях можно просто переключить тип в программе и сравнить результат проверки.
Насколько это критично
Для разового просмотра сайта утечка DNS мало что меняет. Хуже, когда прокси нужен ради отдельной «личности»: мультиаккаунтинг, работа с площадками, которые сверяют регион. Расхождение «IP в Германии, DNS провайдера в России» — заметный сигнал, а одинаковый домашний резолвер у двадцати аккаунтов на разных прокси связывает их между собой. Кроме того, при утечке ваш провайдер видит список доменов, которые вы открываете через прокси.
Что сделать прямо сейчас
Откройте browserleaks.com/dns с включённым прокси. Если видите своего провайдера — в Firefox включите DNS через SOCKS5, в Chrome проверьте безопасный DNS и лишние VPN-расширения, в скриптах замените socks5:// на socks5h://, затем повторите проверку. Делайте её один раз на каждый новый браузер, профиль или скрипт: настройки резолва у всех разные, и то, что не течёт в одной программе, легко течёт в соседней.
Если нужен отдельный прокси под тест или под новый профиль, в ModJus он стоит 10 ₽ на 30 дней, выдаётся в Telegram-боте за минуту и работает сразу по HTTP и SOCKS5 — удобно проверить обе схемы на одном адресе. Страны и цены — на странице локаций.