Hero Image

Чем SOCKS5 отличается от SOCKS5h - что лучше для анонимности?

Является ли SOCKS5 золотым стандартом анонимности и надежной защиты? Несмотря на то, что SOCKS5 имеет преимущества над SOCKS4 и HTTP, само слово SOCKS5 в адресе прокси еще не гарантирует защиту от слива реального IP.

В этой статье мы расскажем чем SOCKS5 отличается от SOCKS5h, почему вторая буква в названии критически важна, разберем сетевые пакеты обоих протоколов, и почему даже SOCKS5h сам по себе не спасает от деанонимизации.

Многие думают, что для обеспечения анонимности в сети достаточно использовать прокси с поддержкой SOCKS5h. Из этой статьи вы узнаете почему это не так, почему одна буква в адресе прокси может сделать непоправимые последствия выдав ваш IP-адрес, а главное - как защитить свои данные от утечек через DNS, WebRTC и ECS.

Отличия SOCKS5 и SOCKS5h

SOCKS5: Резолвинг на стороне клиента

Когда вы используете обычный SOCKS5, доменное имя разрешается прямо на вашем компьютере. Звучит невинно, но те кто следят за нашими постами сразу видят серьезную проблему.

Представьте себе такую цепочку. Вы открыли браузер, ввели адрес example.com и нажали Enter. На этом моменте браузер не знает, где находится этот сайт — ему нужно узнать его IP-адрес. Браузер отправляет DNS-запрос к вашему локальному DNS-серверу (обычно это сервер вашего провайдера или какой-то публичный резолвер Google). Затем DNS-сервер отвечает: вот IP-адрес этого домена - 93.184.216.34. Только после этого браузер передает этот самый IP-адрес вашему SOCKS5-прокси со словами: «Подключись вот к этому адресу и дай мне ответ». Прокси делает подключение и возвращает вам трафик.

Important

Но есть проблема. Во-первых, ваш интернет-провайдер видит, что вы запрашивали DNS для домена example.com, даже если сам веб-трафик идет через прокси. Во-вторых, если вы используете DNS-серверы вашего провайдера для резолвинга, это может напрямую выдать ваше реальное местоположение через утечку DNS. Также для антифрод-системы это яркий красный флаг: «Тут явно прокси, потому что IP один, а DNS-сервер совсем в другом месте».

SOCKS5h: Буква «h» меняет всё, но не все...

А вот буква h в названии SOCKS5h означает hostname (имя хоста). Здесь отправка DNS-запросов работает иначе.

Когда вы используете SOCKS5h, браузер не пытается самостоятельно узнать IP-адрес домена. Вместо этого он просто передает само имя домена на прокси-сервер со словами: «Слушай, мне нужно подключиться к example.com, но я не знаю его IP. Ты разберись». Прокси-сервер самостоятельно выполняет DNS-запрос, узнает IP-адрес, и потом уже подключается к целевому серверу. Ваш браузер получает трафик, но весь процесс резолвинга остался на стороне прокси. При этом ваш локальный DNS-сервер и ваш провайдер больше не видят к каким доменам вы обращаетесь.

А действительно ли это так?

Давайте посмотрим как это работает на уровне пакетов. Сделаем запросы через SOCKS5 и SOCKS5h и посмотрим какие данные у нас летают по сети. Для этого будем использовать утилиту tshark, чтобы подтвердить наличие DNS запроса у SOCKS5 и утилиту wireshark - графическую версию tshark для удобного анализа пакетов. Приступим.

Запустим tshark следующей командой, чтобы ловить DNS пакеты, которые отправляет наш компьютер:

sudo tshark -i wlan0 -f "udp port 53" -Y "dns" -T fields -e dns.qry.name -e dns.qry.type -e dns.a -e dns.aaaa

Затем отправим запрос на сайт i-love-cats.com через наш прокси сервер утилитой curl используя SOCKS5:

curl --proxy socks5://login:password@ip:port https://i-love-cats.com

Посмотрим вывод tshark и увидим, что действительно отправился DNS запрос на получение IP-адреса сайта i-love-cats.com. Обратим внимание на IPv6 адрес 2606:4700:3035::6815:4eab,2606:4700:3034::ac43:881f. Запомним его.

вывод tshark

Проверим утилитой Wireshark как выглядел наш трафик. Найдем наш пакет. 4 запроса до него происходила установка соединения и аутентификация пользователя на прокси сервере. В самом же пакете мы видим тот самый IPv6-адрес, который показал нам tshark.

Из этого делаем вывод, что DNS запрос действительно отправлялся с нашего пк.

Что же насчет SOCKS5h? Давайте отправим запрос с того же прокси через curl, но уже с указанием socks5h:

curl --proxy socks5h://login:password@ip:port https://i-love-cats.com

В выводе tshark пусто, DNS запрос не отправился. Проверим Wireshark. Найдем наш пакет и посмотрим его содержимое. Видим, что наш клиент напрямую отправил доменное имя того ресурса, который мы хотим посетить.

Значит, наш реальный IP чей-то DNS не увидел.

Проблемы, которые SOCKS5h не решает

На данный момент вывод очевиден. SOCKS5h явно лучше SOCKS5 для анонимности, и если вы до сих пор используете просто SOCKS5, то рекомендуем переходить на SOCKS5h. Для этого в строке адреса вашего прокси достаточно заменить socks5:// на socks5h://, конечно при условии, что ваш Proxy-провайдер поддерживает SOCKS5h.

Но это только половина истории. SOCKS5h решает проблему DNS-утечек, но есть еще две серьезные уязвимости, которые он совершенно не трогает. И о них мы поговорим дальше.

Проблема №1. WebRTC работает в обход SOCKS5h

Warning

SOCKS5h никак не влияет на работу WebRTC.

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

CheckYourPrivacy

Проблема №2. DNS-утечки в антидект-браузерах и анонимных средах

Даже при работе в специализированных антидетект-браузерах отправка DNS на сторону прокси не гарантирует защиту. Если в системе маршруты для DNS-запросов прописаны в обход виртуального сетевого интерфейса или приложения, сетевой стек антидетекта или самой системы может выполнить собственный DNS-запрос напрямую через провайдера, сетевой стек антидетекта или самой системы может выполнить собственный DNS-запрос в обход прокси.

Warning

Сайты видят такие утечки с помощью генерации уникальных поддоменов. Если DNS-запрос на резолвинг такого поддомена приходит с вашего реального IP, система фиксации тут же связывает его с пользователем. Подробнее об этом в статье про то Как проверить прокси на утечки DNS и WebRTC.

Проблема №3. Прокси сервер может отправлять ваш IP через ECS

Технология ECS, подробнее о которой писалось в статье Как DNS "сливает" ваш реальный IP адрес изначально создавалась для того, чтобы пользователи быстрее загружали контент, отправляя ваш на ближайший к вам DNS-сервер.

Warning

В случае, если ваш прокси не поддерживает протокол SOCKS5h и UDP соединение - ваши DNS запросы будут идти в обход него. Существуют DNS провайдеры, требующие обязательного наличия ECS. Сама система автоматически может подставлять ваш IP в такие запросы. Поэтому если ваш DNS-запрос пойдет к таким провайдерам мимо прокси - они смогут узнать ваше примерное местоположение.

Отправляемый IP-адрес в DNS-запросе с ECS обрезается с конца на 24 бита, поэтому полностью IP-адрес злому провайдеру получить не удастся, но вашу страну или даже примерное местоположение - вполне.

Давайте проверим как это работает. Отправляем запрос с абсолютно случайным ECS, например 198.51.15.1, и, как мы видим, сервер получает запрос нашим IP:

Давайте рассмотрим интернет-провайдера AT&T, который откидывает введенный нами ECS и все равно отправляет наш реальный IP:

Стоит остерегаться таких провайдеров. На данный момент ZloyTeam активно изучает DNS-провайдеров и их особенности, чтобы подбирать самых безопасных для вашей анонимности и скоро мы сделаем обновление с более безопасной настройкой DNS, а также напишем об этом одну из следующих статей.

Important

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

Для предотвращения утечек следует отказаться от публичных DNS-серверов, которые активно используют ECS, например Google, OpenDNS, в пользу провайдерских или специализированных решений, не поддерживающих передачу данных в поле CLIENT-SUBNET. Также советуем использовать ZloyRouter, который "из коробки" поддерживает функцию автоматической подмены ECS для всего трафика вашей локальной сети.

Мы не сотрудничаем с поставщиками прокси и не получаем комиссию за их продажу. Это позволяет нам оставаться максимально объективными и давать честную оценку технологиям и решениям.

- ZloyTeam

Заключение

SOCKS5h обязателен к использованию вместо обычного SOCKS5, но это не панацея. Стоит учесть, что даже идеально настроенный SOCKS5h уязвим для WebRTC-утечек и системных DNS-запросов. Чтобы проверить ваш прокси и узнать видят ли сайты ваш реальный IP-адрес и как антифрод-системы будут на него реагировать проверьте ваше соединение через наш сервис Zloy Detect.

Чтобы заткнуть дыры в анонимности можно либо самому искать информацию и исправлять ошибки в системе, либо можно воспользоваться готовым коробочным решением ZloyRouter, который сделает все за вас, причем не только для вашего ПК, но и для всей вашей локальной сети.

Софт от ZloyTeam стоит на страже вашей анонимности. Больше интересных статей вы можете найти у нас в телеграмм канале. А мы продолжаем делать все, чтобы вы оставались приватными в сети.

Other Related Posts:

Как проверить прокси на утечки DNS и WebRTC

Как проверить прокси на утечки DNS и WebRTC

Прокси не гарантирует, что реальный IP-адрес пользователя останется скрытым. Если не используется протокол с удалённым резолвингом, такой как SOCKS5h, то DNS-запросы у прокси выполняются не на стороне прокси-сервера, а локально на устройстве пользователя. В свою очередь, технология WebRTC работает ч...

21st Aug 2026