Если вы берётесь за SOCKS5, ожидая получить «защищённый прокси» или «анонимный», вы уже неверно его поняли. SOCKS5-прокси не шифрует ваш трафик и не является более приватным по умолчанию, чем любой другой прокси. Что это такое на самом деле: агностический к протоколам ретранслятор, который перемещает ваши TCP- и UDP-пакеты, не читая их и не изменяя.

В этом вся суть. HTTP-прокси понимает веб-трафик и может воздействовать на него. SOCKS5-прокси ничего не понимает в том, что переносит; он открывает соединение и пересылает байты. Это делает его универсальной трубой, что именно то, что нужно, когда трафик не является обычным вебом, и именно неправильный инструмент, когда нужен умный прокси для работы с вебом.

Поэтому настоящий вопрос не «SOCKS5 или HTTP, что лучше». Вопрос в том, нужен ли вам прокси, понимающий ваш трафик, или такой, который перенесёт что угодно. Этот материал отвечает на него и попутно развеивает миф о шифровании.

Что такое SOCKS5-прокси на самом деле

SOCKS расшифровывается как Socket Secure. Это протокол, который ретранслирует соединение через промежуточный сервер: прокси открывает TCP- или UDP-соединение с вашим адресатом от вашего имени и пересылает данные в обоих направлениях. Название происходит от того уровня, на котором он работает, на уровне сокетов, ниже любого прикладного протокола, который вы используете.

В терминах OSI он находится на сеансовом уровне (уровень 5), ниже прикладного протокола, HTTP, SMTP или FTP, и выше транспортного уровня, где находятся TCP и UDP. Поскольку он расположен там, он может переносить любой из этих прикладных протоколов, не зная и не заботясь о том, что они собой представляют. Это один уровень косвенности, который оказывается слепым к протоколу.

SOCKS5, текущая версия. По сравнению с SOCKS4 она добавляет три важные вещи: поддержку UDP, IPv6 и аутентификацию, так что сервер может потребовать имя пользователя и пароль и проксировать не только TCP. И в отличие от веб-прокси, он не переписывает прикладные данные в ваших пакетах. Он ретранслирует их как есть, что снижает накладные расходы и уменьшает вероятность ошибок на уровне протокола.

Как устанавливается соединение SOCKS5

Под капотом обмен SOCKS5, это короткое согласование, которое происходит один раз, до того как пройдёт любой из ваших данных трафик:

  1. Приветствие. Ваш клиент подключается к прокси и перечисляет поддерживаемые методы аутентификации.
  2. Аутентификация. Прокси выбирает один. SOCKS5 определяет режим без аутентификации, имя пользователя и пароль, а также GSSAPI; если требуются учётные данные, они обмениваются здесь. В SOCKS4 этого не было.
  3. Запрос. Клиент отправляет команду: CONNECT для TCP или UDP ASSOCIATE для UDP, с адресом и портом назначения. Этот адрес может быть IPv4, IPv6 или доменным именем.
  4. Ретрансляция. Прокси открывает соединение с адресатом и с этого момента слепо пересылает байты в обоих направлениях. Он больше никогда не проверяет прикладные данные.

Это рукопожатие и есть весь протокол. Всё, в чём SOCKS5 хорош, и всё, чего он намеренно не делает, вытекает из того, как мало происходит на этом последнем шаге.

Ключевое различие: осведомлённость о приложении против агностицизма к протоколу

HTTP-прокси говорит на HTTP. Он читает строку запроса и заголовки, поэтому может кэшировать ответы, добавлять или удалять заголовки, применять правила и маршрутизировать по URL. Это специалист по веб-трафику, и именно поэтому он является выбором по умолчанию для скрапинга и автоматизации браузера. Если вы хотите, чтобы прокси помогал с вебом, эта осведомлённость и есть вся ценность, и именно здесь появляется различие между HTTP- и HTTPS-прокси.

SOCKS5-прокси не говорит ни на чём. Он не разбирает ваш запрос; он пересылает сырое соединение. Он не может кэшировать, не может переписать заголовок и не может отличить HTTPS-запрос от игрового протокола или почтовой сессии. Это универсал. Ни одна из конструкций не является более продвинутой. Они обменивают осведомлённость о вебе на универсальность.

Что видит каждый. HTTP-прокси читает запрос и может воздействовать на него (кэшировать, переписывать заголовки, маршрутизировать по URL). SOCKS5-прокси пересылает сырое соединение без его разбора, поэтому переносит любой протокол, но не может быть умным в отношении веба.

Миф о шифровании: SOCKS5 не защищает ваш трафик

Это та часть, которую большинство объяснений излагают неверно. SOCKS5-прокси скрывает ваш IP от адресата, но он ничего не шифрует. Данные между вами и прокси так же открыты, как без него, и любой на этом пути может их прочитать, если прикладной протокол не зашифрован (что делает HTTPS сквозным образом). SOCKS5 обеспечивает доступность и косвенность, а не конфиденциальность.

По умолчанию открытый текст

SOCKS5-прокси меняет IP, который видит адресат. Он не добавляет шифрование. Если нужно, чтобы переход был приватным, шифрование должно прийти откуда-то ещё: из HTTPS на прикладном уровне или из туннеля ниже. Воспринимать SOCKS5 как уровень безопасности, самое распространённое и дорогостоящее заблуждение о нём.

Чтобы действительно зашифровать переход, SOCKS5 туннелируют через что-то, что шифрует, чаще всего SSH. Команда ssh -D открывает локальный SOCKS-прокси, соединение которого с сервером зашифровано SSH, и это стандартный способ, которым инженеры достигают сервисов за брандмауэром или бастионным хостом без развёртывания VPN. В этом и есть честное отличие от VPN: VPN шифрует и маршрутизирует весь трафик устройства на уровне операционной системы, тогда как SOCKS5 маршрутизирует только те приложения, которые вы на него направляете, и не добавляет никакого шифрования от себя.

SOCKS5 против SOCKS4

Если вы встречаете SOCKS4 в работе, считайте его устаревшим. SOCKS4 переносит только TCP и не поддерживает аутентификацию. SOCKS5 добавляет UDP (что важно для DNS, голоса, видео и игр), IPv6 и аутентификацию по имени пользователя и паролю, чтобы прокси мог контролировать доступ. Для любого современного приложения выбирайте SOCKS5.

SOCKS5 быстрее?

SOCKS5 часто продают как быстрый прокси, и в этом есть доля правды: он не разбирает данные и не перезаписывает пакеты, поэтому добавляет очень мало накладных расходов, а UDP ASSOCIATE позволяет трафику, устойчивому к потерям, голосу, видео, играм, пропустить упорядочение и повторную передачу TCP. Но для обычных веб-запросов тип прокси почти никогда не является узким местом. Доминируют сетевой путь, расстояние до выхода и собственная задержка адресата. Воспринимайте SOCKS5 как прокси с низкими накладными расходами, а не как ускорение по сравнению с хорошо настроенным HTTP-прокси, и выбирайте его за то, что он переносит, а не за воображаемое преимущество в производительности.

SOCKS5 против HTTP-прокси: сравнение

Параметр SOCKS5-прокси HTTP-прокси
Понимает ваш трафик Нет, ретранслирует сырые TCP/UDP Да, разбирает HTTP
Протоколы Почти всё (веб, почта, FTP, P2P, игры) Только HTTP и HTTPS
Кэширование, переписывание заголовков Невозможно Да, основная функция
Поддержка UDP Да Нет
Шифрование Нет от себя Нет от себя (HTTPS сквозное)
Лучше всего для Невеб-трафика, SSH-туннелирования, универсального проксирования Веб-скрапинга, автоматизации браузера, кэширования

Когда выбирать SOCKS5, а когда нет

Выбирайте SOCKS5, когда трафик не является обычным вебом: почтовые клиенты, FTP, P2P, игровые серверы или всё, что работает на UDP. Это также правильный инструмент, когда нужен один прокси, работающий для каждого приложения на машине, что обеспечивает динамическая переадресация портов SSH, когда требуется доступ к частной сети или бастионному хосту.

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

Crawlbase Smart AI Proxy

Для веб-скрапинга сырая труба, не тот инструмент. Smart AI Proxy осведомлён о HTTP: одна конечная точка, ротирующая пул из 140M+ IP, повторяет попытки при блокировках и обрабатывает защиту от ботов за вас, чтобы цель видела доверенный запрос вместо вашего скрапера.

Использование SOCKS5-прокси на практике

Самый наглядный способ одновременно увидеть и ретрансляцию, и момент с шифрованием, SSH-туннелированный SOCKS-прокси. SSH шифрует переход; SOCKS5 переносит всё, что вы через него отправляете.

bash
# Open an encrypted SOCKS5 proxy through SSH,
# a dynamic port forward on localhost:1080.
ssh -D 1080 -q -N [email protected]

# Route a request through it. SSH encrypts the
# hop; SOCKS5 on its own would not.
curl --socks5-hostname localhost:1080 "https://example.com/"

Одна деталь, которую стоит знать: кто разрешает DNS. С флагом --socks5-hostname выше прокси ищет домен, поэтому ваша машина никогда не раскрывает запрос, тогда как обычный --socks5 разрешает локально и может вас выдать. Тот же интерфейс SOCKS встречается повсюду, как только начинаешь его замечать: динамическая переадресация SSH, локальный прокси Tor, и большинство браузеров и инструментов командной строки принимают конечную точку SOCKS5 напрямую.

Для веб-скрапинга лучшим строительным блоком является объединённая HTTP-конечная точка, а не одиночный SOCKS-переход. В этом и заключается идея backconnect-прокси в сравнении с Crawling API, а выходные IP за ним всё равно сводятся к компромиссу датацентрового и жилого типа. Если вы составляете список провайдеров, у нас есть актуальный обзор в лучших прокси-провайдерах.

Итоги

Ключевые выводы

  • SOCKS5, агностический к протоколам ретранслятор, а не «защищённый» или анонимный прокси. Он перемещает сырые TCP и UDP без их чтения.
  • Он не шифрует. Шифрование должно обеспечиваться HTTPS или туннелем, например SSH; SOCKS5 лишь меняет IP, который видит адресат.
  • HTTP-прокси, специалист по вебу; SOCKS5, универсальный универсал. Выбирайте исходя из того, нужно ли прокси понимать ваш трафик.
  • SOCKS5 превосходит SOCKS4 по поддержке UDP, IPv6 и аутентификации. SOCKS4 устарел.
  • Для веб-скрапинга выигрывает HTTP-прокси. Сырая труба не даёт кэширования, контроля заголовков или обработки защиты от ботов.

Часто задаваемые вопросы

SOCKS5-прокси шифрует мой трафик?

Нет. SOCKS5 ретранслирует ваше соединение и меняет IP, который видит адресат, но не добавляет шифрование. Всё, что не защищено HTTPS, передаётся в открытом виде между вами и прокси. Чтобы зашифровать переход, туннелируйте SOCKS5 через SSH или используйте VPN.

SOCKS5 лучше, чем HTTP-прокси?

Ни один не является universally лучше. SOCKS5 переносит любой протокол, но не может воздействовать на ваш трафик; HTTP-прокси ограничен веб-трафиком, но может кэшировать, переписывать заголовки и маршрутизировать по URL. Выбор зависит от того, является ли ваш трафик веб-трафиком и нужен ли вам умный прокси.

SOCKS5-прокси, то же самое, что VPN?

Нет. VPN шифрует и маршрутизирует весь трафик устройства на уровне операционной системы. SOCKS5-прокси маршрутизирует только те приложения, которые вы на него направляете, и не обеспечивает шифрования. VPN предназначен для конфиденциальности всего трафика; SOCKS5, для выборочной, агностической к протоколам ретрансляции.

SOCKS5 подходит для веб-скрапинга?

Он работает, но редко является лучшим выбором. Скрапинг выигрывает от прокси, осведомлённого о вебе, который может ротировать IP, управлять заголовками и обрабатывать защиту от ботов, ничего из чего SOCKS5-труба не обеспечивает. HTTP-прокси или управляемая конечная точка для кравлинга, более сильный строительный блок.

В чём разница между SOCKS4 и SOCKS5?

SOCKS5 добавляет поддержку UDP, IPv6 и аутентификацию по имени пользователя и паролю, тогда как SOCKS4 обрабатывает только TCP без аутентификации. Для любого современного использования, включая UDP-приложения и прокси с контролем доступа, используйте SOCKS5.

SOCKS5-прокси скрывает мой IP-адрес?

Да, от адресата: он видит IP прокси, а не ваш. Это косвенность, а не анонимность. Ваш трафик не зашифрован, и решительный наблюдатель на сетевом пути всё ещё может видеть, что вы отправляете, если прикладной протокол не защищает это.

Начать создавать

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

Crawlbase берёт на себя прокси, отпечатки и CAPTCHA, чтобы ваша команда выпускала конвейеры данных вместо поддержки обвязки краулинга. 1 000 запросов бесплатно, без карты.

Самообслуживание · Звонок отдела продаж не требуется · Доступны корпоративные объёмы краулинга