Все локации активны · 99.99% uptime
SOCKS5

Настройки производительности SOCKS5

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

Реальная цена: круги рукопожатия

СХЕМАСтоимость установки соединения SOCKS5 в кругах
КРУГTCP-рукопожатие (с прокси)34 msПриветствие SOCKS534 msАутентификация34 msЗапрос CONNECT34 msTLS-рукопожатие (с целевым узлом)68 ms0 ms204 ms всего

Каждый круг стоит одного времени приёма-передачи (RTT). Если RTT до прокси составляет 34 ms, только установка соединения приближается к 200 ms. Повторное использование соединения устраняет эту стоимость.

1. Используйте пул соединений

Здесь наибольший выигрыш. Открывать новое SOCKS5-соединение на каждый запрос — значит каждый раз платить стоимость рукопожатия. С keep-alive вы можете пропускать несколько запросов через один и тот же туннель.

СХЕМАПовторное использование соединений поверх SOCKS5
Конфигурация клиента01# Python requests — используйте Session (пул автоматически)02import requests03s = requests.Session()04s.proxies = {"https": "socks5h://kullanici:sifre@proxy.example.com:1080"}05adapter = requests.adapters.HTTPAdapter(pool_connections=8, pool_maxsize=8)06s.mount("https://", adapter)07# Теперь вызовы s.get(...) используют один и тот же туннель0809# Node.js — повторное использование agent10import { SocksProxyAgent } from "socks-proxy-agent";11const agent = new SocksProxyAgent("socks5h://proxy.example.com:1080");12agent.keepAlive = true;13// Используйте один и тот же объект agent во всех запросах1415# НЕПРАВИЛЬНО: создавать новый agent/session на каждый запрос

Самая частая ошибка — создавать на каждый запрос новый объект Session или agent . Это означает, что пул не работает вообще.

2. Сбалансируйте тайм-ауты

Слишком короткий тайм-аут обрывает нормальные запросы; слишком длинный — заставляет ждать мёртвые соединения. В SOCKS5 нужно настроить три отдельных значения:

ЭтапРекомендуетсяПримечание
Подключение (connect)10–15 сВремя до достижения прокси
Чтение (read)25–40 сВремя ответа целевого узла
Ожидание в пуле (pool)5–10 сОжидание свободного соединения
Для резидентных и мобильных

Если точка выхода — домашняя линия или мобильная сеть, увеличьте эти значения. На мобильных прокси тайм-аут чтения в 10 секунд обрывает значительную часть нормальных запросов.

3. Управляйте стоимостью DNS-разрешения

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

  • Приоритет приватности: socks5h используйте и примите дополнительную задержку.
  • Приоритет скорости, приватность вторична: Выполняйте разрешение локально и отправляйте IP — но доменное имя утечёт в локальную сеть.
  • Баланс: socks5h используйте, но если список целей фиксирован, держите соединения открытыми долго; разрешение выполняется один раз.

4. Правильно настройте параллелизм

СХЕМАПараллелизм и пропускная способность поверх SOCKS5
ИЗМЕРЕНИЕ010213141Пропускная способность (запросов/с)p95-задержка (×100 ms)248163264

Пропускная способность выходит на плато примерно на 32, тогда как p95-задержка быстро растёт. Оптимальная точка обычно там, где начинается плато; дальше растёт только очередь.

Для расчёта параллельности смотрите нашу статью о лимите одновременных соединений можно посмотреть.

5. Не забывайте про сжатие

Поскольку SOCKS5 ничего не знает о содержимом, решение о сжатии полностью на стороне клиента. Accept-Encoding: gzip, br убедитесь, что заголовок отправляется — на текстовом содержимом это даёт экономию 65–80% и напрямую отражается на времени.

Измерение

СХЕМАПоэтапное измерение времени
# подробный вывод curl — посмотрите строки CONNECT01# Поэтапные тайминги с помощью curl02curl --socks5-hostname proxy.example.com:1080 -s -o /dev/null \\03 -w "dns:%{time_namelookup} baglanti:%{time_connect} tls:%{time_appconnect} ilk-bayt:%{time_starttransfer} toplam:%{time_total}\\n" \\04 https://example.com0506# Запустите 20 раз и возьмите медиану07for i in $(seq 1 20); do08 curl --socks5-hostname proxy.example.com:1080 -s -o /dev/null \\09 -w "%{time_total}\\n" https://example.com10done | sort -n | awk "{a[NR]=\$1} END {print \"medyan:\", a[int(NR/2)+1]}"

time_connect вместе с time_appconnect разница между ними показывает суммарную стоимость рукопожатия SOCKS5 и установки TLS.

Для более полного измерения к нашей статье о тесте скорости и тест пинга .

Резюме

Сам по себе SOCKS5 — быстрый протокол; медлительность почти всегда происходит из отсутствия повторного использования соединений. Правильно настройте пул, подберите тайм-ауты по типу выхода, определяйте параллелизм измерениями и сохраняйте сжатие. Эти четыре пункта вместе заметно повышают эффективную скорость типичной операции на SOCKS5. За вариантами продуктов на нашу страницу SOCKS5-прокси можно посмотреть.

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

01SOCKS5 медленнее HTTP-прокси?

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

02Работает ли пул соединений в SOCKS5?

Да. Через один и тот же туннель SOCKS5 можно пропускать несколько HTTP-запросов. Достаточно повторно использовать объект Session/Agent в вашем клиенте.

03Замедляет ли использование socks5h?

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

04Как выбрать значения тайм-аутов?

В зависимости от типа выхода. Для datacenter достаточно 10 секунд на подключение и 25 на чтение. Для резидентных и особенно мобильных выходов увеличьте эти значения соответственно до 15 и 40 секунд.

05Как подобрать уровень параллелизма?

Проведите ступенчатый нагрузочный тест: измеряйте пропускную способность и p95-задержку при значениях 2, 4, 8, 16, 32. Работайте ниже точки, где пропускная способность выходит на плато, а задержка начинает расти.

Связанные статьи и страницы

СЛЕДУЮЩИЙ ШАГ

Усильте свою прокси-инфраструктуру уже сегодня.

Начните с платным тарифом за считанные минуты или сначала попробуйте наш бесплатный список прокси.

FREEPROXY.TR

Ищете бесплатные прокси — вы попали по адресу

Комплексная прокси-платформа, где можно посмотреть актуальные адреса бесплатных прокси, сравнить типы HTTP и SOCKS и проверить свои прокси-подключения бесплатными инструментами.