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 ГБ
Регистрация за минуту, доступы сразу после оплаты.