DNS

DNS — система, которая превращает имя сайта, например example.com, в IP-адрес сервера.

Обновлено · Редакция Prokso

Прежде чем открыть сайт, программа спрашивает DNS-сервер, какой адрес стоит за именем. Только потом она подключается к этому адресу.

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

С HTTP-прокси имя сайта обычно передаётся прокси, и адрес определяет уже он. Для SOCKS5 во многих программах это отдельная настройка — например, схема socks5h в curl и Python.

Ответы DNS кэшируются, поэтому смена адреса сайта доходит до пользователей не сразу.

Какие записи DNS запрашивает программа

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

ЗаписьЧто в ней
Aадрес IPv4
AAAAадрес IPv6
CNAMEпсевдоним другого имени
TTLсколько секунд ответ можно держать в кэше

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

DNS-трафик через Prokso

Классические запросы DNS идут через UDP на порт 53, а Prokso UDP не передает. Поэтому программа, которая сама отправляет запросы DNS «через прокси» по UDP, ответа не получит. По TCP порты 53 и 853 есть в списке открытых; порт 853 использует DNS поверх TLS.

В повседневной работе это нужно редко: с HTTP-прокси и со схемой socks5h имя сайта определяет сам шлюз. О зашифрованных запросах в браузере читайте в статье DNS over HTTPS, он работает через порт 443.

Как посмотреть записи самостоятельно

Команда nslookup example.com работает в Windows, macOS и Linux и показывает адреса по имени. В macOS и Linux команда dig example.com AAAA показывает конкретный тип записи и его TTL. Если сайт переехал, а вы до сих пор попадаете на старый адрес, проверьте файл hosts: запись в нем важнее DNS.

Вопросы и ответы

Что такое socks5h?

Это запись протокола в curl и Python, при которой имя сайта передаётся прокси, и адрес определяет уже он. С socks5 без h имя определяет ваше устройство.

Видит ли прокси, какие сайты я открываю?

Да, имя сайта прокси видит всегда, потому что должен к нему подключиться. Содержимое страниц с HTTPS остаётся зашифрованным.

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт