Бенчмарк Geekproxy: HTTP, HTTPS, SOCKS5, Shadowsocks по четырём регионам

Опубликовали полный замер собственного стэка. Один аккаунт, один и тот же IP в каждом регионе, четыре протокола на нём, тестировали с одного европейского клиента. Сырые числа: пропускная, latency, поведение SOCKS5 UDP, утечки заголовков.

Ниже — методика, цифры, выводы.

Зачем мы это сделали

Каждый клиент рано или поздно задаёт вопрос: «Какой протокол выбрать?» На большинстве сайтов в индустрии в ответ — маркетинг: «HTTPS-secure», «SOCKS5-flexible», «Shadowsocks-stealth». Без числовых отличий и без признания, где у конкретного провайдера слабые места.

У нас были тестовые данные по всем эндпоинтам, мы их собрали в одном месте. Зачем выкладываем:

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

Методика

Тестовый клиент — наш собственный сервер в Европе. Все запросы по IPv4, чтобы исключить эффект IPv6-маршрутизации.

Инструменты:

  • curl 8.5.0 — для HTTP/HTTPS/SOCKS5 TCP
  • ss-local (shadowsocks-libev 3.3.5) — для Shadowsocks
  • raw Python socket — для SOCKS5 UDP ASSOCIATE
  • openssl s_client — для проверки TLS-handshake к HTTPS-прокси

Метрики:

  • Пропускная — https://speed.cloudflare.com/__down?bytes=10000000, 10 МБ файл, замеряем speed_download
  • Latency — TTFB до https://www.google.com/generate_204, медиана из 5–10 замеров
  • SOCKS5 UDP RTT — DNS-запрос (A example.com) к 8.8.8.8:53 через UDP relay, медиана из 5 замеров
  • Anonymity — содержимое httpbin.org/headers, поиск Via, X-Forwarded-For, X-Real-IP, Forwarded, Proxy-Connection

Пропускная способность

Тесты с европейского клиента. NL и DE ближе всего, UA сравнимо по расстоянию, US дальше всех.

image
Protocol UA NL DE US
HTTP 79 Mbps 161 Mbps 200 Mbps 22 Mbps
HTTPS 52 Mbps 231 Mbps 189 Mbps 31 Mbps
SOCKS5 TCP 59 Mbps 205 Mbps 297 Mbps 23 Mbps
Shadowsocks 69 Mbps 162 Mbps 282 Mbps 29 Mbps

Что видно из чисел:

  • DE — самый быстрый PoP для европейского клиента. 297 Mbps на SOCKS5, 282 на Shadowsocks. NL близко (231 на HTTPS).
  • UA-эндпоинт медленнее NL/DE в 2–4 раза при сравнимом географическом расстоянии. Это про upstream-канал самого PoP, не про протокол.
  • US с европейского клиента — ожидаемые 22–31 Mbps, упирается в трансатлантическую задержку и пропускную целевого сервера. Реальную картину для US-аудитории даст только тест с американского клиента.

Latency

TTFB до google.com через каждый протокол, медиана из 5–10 замеров.

image
Protocol UA NL DE US
HTTP 290 ms 90 ms 87 ms 285 ms
HTTPS 350 ms 142 ms 103 ms 643 ms
SOCKS5 TCP 365 ms 110 ms 73 ms 764 ms
Shadowsocks 287 ms 113 ms 63 ms 552 ms

Что важно понять:

  • HTTPS-прокси добавляет ~100–200 ms latency на новом соединении за счёт TLS-handshake к прокси. Если клиент держит keep-alive — overhead исчезает после первого запроса.
  • HTTP — самый быстрый по latency, как и должен быть (нет TLS-обёртки).
  • DE опять в топе: 63 ms TTFB на Shadowsocks — почти как direct.
  • US с европейского клиента подтверждает методику: 643 ms для HTTPS — это TLS-handshake через Атлантику плюс установка соединения с целью.

SOCKS5 UDP — отдельный пункт, который у конкурентов часто не работает

UDP в SOCKS5 — это команда UDP ASSOCIATE из RFC 1928. Большинство «SOCKS5-прокси» в индустрии её просто не поддерживают: TCP-тесты с curl проходят, а DNS over UDP, QUIC/HTTP3, WebRTC, Telegram-боты, игровые протоколы — молча не работают, без внятных сообщений об ошибке.

Прогнали raw-тест: ассоциация → DNS-запрос (A example.com) к 8.8.8.8:53 через relay-порт прокси.

image
PoP UDP RTT min median max
UA 70 ms 81 ms 98 ms
NL 14 ms 24 ms 26 ms
DE 6 ms 7 ms 10 ms
US 123 ms 127 ms 128 ms

Дополнительно: 19 из 19 запросов через одну ассоциацию прошли без потерь за 5 секунд. UDP можно слать на разные dst через одну ассоциацию (проверили на 8.8.4.4) — relay не привязан к одному target. Это важно для сценариев, где боту нужно ходить в несколько разных UDP-сервисов в одной сессии.

Anonymity audit

Все 16 комбинаций (4 PoP × 4 протокола) проверили на утечки заголовков и DNS.

Заголовки. Через httpbin.org/headers целевой сервер во всех 16 случаях видит только Accept, Host, User-Agent, X-Amzn-Trace-Id. Ни Via, ни X-Forwarded-For, ни X-Real-IP, ни Forwarded, ни Proxy-Connection. С точки зрения target — запрос неотличим от прямого. Это elite (L1) anonymity для всех 4 протоколов.

DNS. Запрос к несуществующему домену *.example.invalid через прокси возвращает ошибку прокси (CONNECT 503), не нашу локальную NXDOMAIN. Резолв идёт на стороне прокси, наш DNS не утекает.

Коротко

  • HTTP, HTTPS, SOCKS5 (с UDP), Shadowsocks работают на всех 4 PoP во всех 16 комбинациях.
  • Заявленный exit-IP совпадает с фактическим в каждом случае.
  • Утечки заголовков — 0 из 16. DNS-резолв на стороне прокси.
  • Лучший европейский PoP по скорости и latency: DE.
  • HTTPS-прокси: валидный TLS 1.3 + Let's Encrypt cert на каждом эндпоинте, проверяется openssl s_client.
  • US-эндпоинт получит честные оценки только при тесте с US-клиента.

Попробуйте Geekproxy сами

Прогоните те же команды на нашем стэке. Числа, а не обещания.

Оформить заказ

We use cookies to improve user experience. By clicking "Yes, I agree", you consent to this use of cookies.

Привилегия первых: В честь глобального запуска [мы даем скидку 50%+] на все датацентр тарифы. Эксклюзивное предложение для наших стартовых партнеров.