Реферальная программа
Глоссарий

SOCKS5-прокси

Прокси-протокол, направляющий любой TCP- или UDP-трафик - не только HTTP - через прокси-сервер, с поддержкой аутентификации.

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

«5» в SOCKS5 означает пятую версию протокола SOCKS. Ключевые улучшения в v5 по сравнению с v4: поддержка UDP (нужна некоторым реал-тайм приложениям), поддержка IPv6 и несколько методов аутентификации, включая логин/пароль.

HTTP-прокси работают на прикладном уровне и понимают HTTP/HTTPS. Они могут менять заголовки, кэшировать ответы и убирать метаданные. SOCKS5 протоколо-независим - он просто передаёт сырые пакеты, не инспектируя и не изменяя их.

Когда использовать SOCKS5: приложения не на HTTP, инструменты с явной поддержкой SOCKS5 (многие скрапинг-фреймворки, SSH-туннелирование, игровые клиенты) и когда нужно проксировать UDP-трафик.

Когда использовать HTTP-прокси: скрапинг стандартными HTTP-клиентами, браузерная автоматизация и когда требуется изменение заголовков или SSL-инспекция. Большинство скрапинг-сетапов используют HTTP/HTTPS-прокси - SOCKS5 нужен, только если этого требует ваша цель или инструмент.

Эндпоинты SotaProxy поддерживают и SOCKS5, и HTTP/HTTPS. Выбирайте протокол, с которым ваш инструмент или языковая библиотека работает нативно.

Почему SOCKS5 живёт ниже в стеке

HTTP-прокси понимает то, что пересылает. Он читает метод и URL, умеет переписывать заголовки, кешировать и носит только те протоколы, которые знает. SOCKS5 не делает ничего из этого. Он открывает TCP-соединение к адресату от вашего имени и гоняет байты в обе стороны, не интерпретируя их.

Это безразличие и есть возможность. Всё, что работает поверх TCP, проходит через SOCKS5 без изменений: сессия SMTP, соединение с базой, игровой протокол, апгрейд до WebSocket. HTTP-прокси первое тянет плохо, а остальное не тянет вовсе.

SOCKS5 умеет и UDP, что важно для протоколов, которые вообще не про TCP, и поддерживает аутентификацию внутри рукопожатия, а не заголовком, поэтому клиент спрашивает логин и пароль отдельным диалогом.

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

SOCKS5 на наших точках входа

Оба семейства продуктов говорят на SOCKS5, но порты устроены по-разному:

Строки подключения

# Резидентка: тот же порт, служба сама распознаёт протокол
curl -x socks5h://login_c_US:password@proxy.sotaproxy.com:10000 https://api.ipify.org

# Статика: SOCKS5 на единицу выше HTTP
curl -x socks5h://login:password@ваш-ip:50101 https://api.ipify.org

# Python требует расширения:
#   pip install requests[socks]
  • Пишите socks5h, а не socks5. Буква h означает, что имя уезжает к нам и резолвится здесь. Иначе ваш резолвер видит все цели, а маршрут может уйти географически не туда.
  • Суффиксы таргетинга работают под SOCKS5 так же, как под HTTP. Меняется протокол, логин нет.
  • Части библиотек нужна отдельная зависимость: requests просит socks-расширение, Node просит socks-proxy-agent.
  • Если на статическом адресе HTTP работает, а SOCKS5 нет, вы почти наверняка всё ещё на 50100.

Частые заблуждения про SOCKS5

SOCKS5 не анонимнее

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

SOCKS5 не шифрует

Протокол не добавляет шифрования. Ваш HTTPS защищён тем, что это HTTPS, а простой HTTP так же читаем, как и был.

socks5 и socks5h не взаимозаменяемы

Они различаются тем, кто резолвит имя, и одна эта буква решает, утекает ли DNS.

SOCKS5 не всегда быстрее

Он пропускает обработку заголовков, что даёт немного. На резидентном маршруте всё решает выходное устройство.

SOCKS5 рядом с SOCKS4 и HTTP-прокси

Их часто называют альтернативами, но различаются они не качеством, а тем, что способны перенести. Строки ниже это свойства самих протоколов, а не конкретного провайдера.

СвойствоSOCKS4SOCKS5HTTP-прокси
Что переноситтолько TCPTCP и UDPтолько HTTP и HTTPS
Где находитсяниже приложенияниже приложениявнутри протокола приложения
Аутентификацияполе с идентификатором, и всёлогин и пароль либо GSSAPIBasic или Digest, заголовком HTTP
Кто резолвит имяклиентклиент, либо прокси при socks5hпрокси
IPv6нетдада
Собственное шифрованиенетнетнет
Порт по соглашению108010808080 или 3128

Строка про шифрование та, в которой ошибаются чаще всего. Ни один из трёх сам по себе ничего не шифрует. Трафик защищает TLS внутри туннеля, поэтому адрес на https остаётся закрытым даже через обычный HTTP-прокси, а адрес на http не становится закрытым ни при каком выборе протокола.

Что спрашивают на самом деле

Шифрует ли SOCKS5 трафик?

Нет. SOCKS5 переносит байты и ничего не добавляет от себя. Если вы открываете адрес на https, его защищает TLS от конца до конца, и прокси видит только куда вы ходили, но не что читали. Если адрес на http, оператор прокси может его прочитать и изменить. Выбор SOCKS5 вместо HTTP этого не меняет.

Чем socks5 отличается от socks5h?

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

SOCKS5 или HTTP-прокси, что выбрать?

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

SOCKS5 это то же, что VPN?

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

Какой порт у SOCKS5?

По соглашению 1080, потому что так было в примерах спецификации. На практике провайдеры назначают что хотят. На нашем резидентском шлюзе SOCKS5 отвечает на тех же портах, что и HTTP, в любом месте диапазона 10000-10999, и протокол выбирает схема в клиенте, а не номер.

Поддерживает ли SOCKS5 UDP и нужен ли ещё SOCKS4?

Протокол UDP поддерживает, и это главное практическое преимущество перед SOCKS4 вместе с IPv6 и настоящей аутентификацией. Пропускает ли UDP конкретный провайдер, это отдельный вопрос, который стоит задать до того, как строить на этом. SOCKS4 нужен только там, где что-то старое отказывается говорить иначе.

Смотри на практике

Готов использовать socks5-прокси?

SotaProxy даёт доступ к ротирующим резидентским, мобильным, дата-центр и ISP прокси. Без минимальных платежей.

Начать