Truarbitфорум по арбитражу

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

Автор silentgo Ответов 6 Просмотров 8 412 Раздел Инструменты и прокси
si silentgoучастник
Сообщений 634 С нами фев 2019
3 дня назад#1

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

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

HTTP-прокси: понимает запрос

HTTP-прокси разбирает заголовки запроса. Он видит адрес назначения, метод, куки, User-Agent. Из этого следует и плюс, и минус. Плюс в том, что такой прокси умеет кешировать и фильтровать. Минус в том, что он может добавить в запрос свои заголовки, и принимающая сторона это увидит.

Для HTTPS схема другая: браузер отправляет метод CONNECT, прокси открывает туннель и дальше только перекладывает шифрованные байты. Содержимое ему уже недоступно, он знает лишь адрес и порт. Именно поэтому HTTP-прокси спокойно работает с защищёнными сайтами, хотя название говорит об обратном.

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

SOCKS5: не разбирает содержимое

SOCKS5 работает на транспортном уровне. Ему всё равно, что вы гоните через соединение: веб, почту, свой протокол поверх TCP. Он не добавляет заголовков, потому что не знает про них.

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

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

Что сравниваемHTTPSOCKS5
Уровень работыприкладнойтранспортный
Видит содержимоеда, кроме HTTPSнет
Добавляет заголовкиможетнет
Поддержка UDPнетесть
Работает с не-веб софтомнетда
Типичный порт8080, 31281080

Три вида HTTP-прокси по анонимности

HTTP-прокси делятся по тому, что они рассказывают о вас принимающей стороне. Прозрачный передаёт ваш настоящий адрес в заголовке и не скрывает ничего. Анонимный ваш адрес не передаёт, но сообщает, что запрос идёт через прокси. Элитный не сообщает ни того ни другого, и со стороны запрос выглядит как обычный.

Разница видна в заголовках X-Forwarded-For и Via. Первый несёт исходный адрес, второй сообщает о посреднике. Если в запросе нет ни одного из них, прокси относится к третьей группе.

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

Авторизация: по логину и по адресу

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

Привязка по адресу удобна ровно до того момента, пока ваш собственный IP не сменился. После смены доступ отваливается молча, и выглядит — это как «прокси умер». Первое, что стоит проверить в такой ситуации, это список разрешённых адресов в панели, а уже потом всё остальное. Подробный порядок разобран отдельно: что проверять когда прокси перестал отвечать.

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

Какой протокол просит софт

Антидетект-браузеры принимают оба протокола. В Dolphin Anty при создании профиля тип подключения выбирается из списка, куда входят HTTP, SOCKS4 и SOCKS5, а поля заполняются одинаково: адрес, порт, логин, пароль. Проверка соединения там же, отдельной кнопкой. Что именно подменяет сам браузер, разобрано в теме про подмену параметров устройства.

Скрипты на Python и Node обычно работают с обоими вариантами, но библиотека может требовать отдельный пакет для SOCKS. Если запрос уходит напрямую, минуя прокси, чаще всего дело именно в этом: нужный пакет не установлен, и библиотека тихо игнорирует настройку.

Сколько адресов держать на профиль, разобрано в соседней теме: сколько адресов держать на один кабинет. Там же про то, почему адрес не делят между профилями.

Приватный адрес и общий

Помимо протокола есть второе деление, и оно важнее: принадлежит адрес вам одному или используется несколькими людьми сразу.

Общий адрес дешевле, и на этом его достоинства заканчиваются. Вы не знаете, что через него делали до вас. Репутация такого адреса складывается из чужих действий, и повлиять на неё вы не можете. Когда сайт вдруг перестаёт пускать, разбираться будет негде.

Приватный адрес закреплён за вами, и его история — это ваша история. Под задачи, где важна чистота адреса, берут приватные IPv4 и SOCKS5 из своего пула, потому что там адрес не гуляет по чужим рукам. Отдельный плюс: доступ выдаётся сразу в обоих протоколах, и переделывать настройку при смене софта не придётся.

Как проверить, что всё настроено верно

Проверка состоит из трёх шагов и занимает пять минут. Первое: запросите свой внешний адрес тем же инструментом, который настраивали. Браузер показывает не всё, расширение может отвалиться незаметно.

Второе: посмотрите заголовки запроса и убедитесь, что там нет вашего настоящего адреса. Третье: если работаете через антидетект, проверьте утечку через WebRTC, она обходит прокси и сводит настройку к нулю. Что ещё входит в отпечаток, разобрано здесь: из чего складывается отпечаток браузера.

Отдельно проверьте скорость. Приватный адрес обычно отвечает ровно, и если задержка скачет от 80 до 900 миллисекунд, дело либо в канале, либо в том, что адрес не такой приватный, как обещали. Ровный отклик даёт безлимитный доступ без ограничения по трафику, потому что там нет соседей, которые забирают полосу.

Итог короткий: HTTP разбирает запрос, SOCKS5 не разбирает. Под браузер годится любой, под остальное только SOCKS5. Авторизацию выбирайте по тому, меняется ли ваш собственный адрес, а тип доступа по тому, насколько вам важна чистота адреса.

sl slow_waveчитатель
Сообщений 157 С нами дек 2019
3 дня назад#2

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

На практике хватает проверки на X-Forwarded-For. Если его нет, дальше можно не копать.

pa payout_liniaсам по себе
Сообщений 599 С нами июл 2024
3 дня назад#3
setevik_77

библиотека может требовать отдельный пакет для SOCKS

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

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

PM PostbackManтрекеры и постбеки
Сообщений 1 203 С нами фев 2020
2 дня назад#4

По авторизации. Если работаете не один, привязка по адресу превращается в мучение: у каждого свой канал, адреса меняются, и в панели постоянно кто-то что-то переписывает. Логин и пароль в такой ситуации спокойнее.

Мы в итоге держим пароли в общем менеджере, а привязку по адресу оставили только для сервера, у которого адрес постоянный.

Tr TrackOfferльёт по мелочи
Сообщений 341 С нами окт 2020
2 дня назад#5

Спасибо, наконец-то без воды. Я всё думал, почему в одном месте пишут socks5, в другом http, и это как будто одно и то же.

si silentgoучастник
Сообщений 634 С нами фев 2019
вчера#6
novi4ok2025

почему в одном месте пишут socks5, в другом http

Потому что для браузера — это действительно почти одно и то же. Разница вылезает ровно тогда, когда трафик идёт не из браузера.

nu nutfarучастник
Сообщений 441 С нами дек 2023
вчера#7

Дополню про порты. 1080 это классика для SOCKS, 3128 и 8080 для HTTP, но поставщик может отдать любой. Ориентироваться на номер порта как на признак протокола не стоит, лучше смотреть, что написано в панели.

Написать ответ в теме