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

Как работает поддержка UDP в SOCKS5?

Самая техническая особенность, отличающая SOCKS5 от HTTP прокси, — способность передавать UDP-трафик. HTTP прокси работает только поверх TCP и никак не может передавать UDP-пакеты. Эта разница становится решающей в играх, голосовой связи и некоторых DNS-сценариях.

Команда UDP ASSOCIATE

В SOCKS5 передача UDP начинается командой CMD=0x03 (UDP ASSOCIATE). Механизм отличается от TCP:

СХЕМАПоток UDP ASSOCIATE
ПРОЦЕССCONNECT ornek.com:443 HTTP/1.1Сервер SOCKS5Из блока, выделенного абонентуУправляющее TCP-соединениеКоманда, позволяющая SOCKS5 передавать UDP-трафик.обновлениеВозвращается адресUDP-релеПакетына релеРеле передаётполучателюОтвет передаётсяобратноЕсли управляющее TCP-соединение закрывается, UDP-реле также завершается

Важная деталь: TCP-соединение задаёт «срок жизни» UDP-сессии. Если клиент не держит TCP-соединение открытым, реле закрывается.

Заголовок UDP-пакета

UDP-пакеты не отправляются напрямую; перед каждым пакетом добавляется небольшой заголовок SOCKS5:

СХЕМАЗаголовок UDP-запроса SOCKS5
ПАКЕТRSV0x0000Зарезервировано, два байтаFRAG0x00Номер фрагмента(обычно 0)ATYP0x01Тип адресаDST.ADDRцельЦелевой адресDST.PORT0x0035Порт назначенияDATAполезная нагрузкаСобственно данные UDP

Этот дополнительный заголовок обеспечивает маршрутизацию UDP-пакетов через реле к нужному получателю. Размер заголовка добавляет несколько байт накладных расходов на пакет.

Проблема поддержки: её почти нигде нет

Хотя UDP ASSOCIATE описан в RFC, на практике он поддерживается нечасто. Причины операционные:

СторонаТипичная ситуацияПочему
Коммерческие провайдеры проксиОбычно отключеноСложность борьбы со злоупотреблениями и управления ресурсами
Клиентские библиотекиЧастичная поддержкаРеализация сложнее, чем для TCP
БраузерыНетИм это не нужно
Собственный развёрнутый серверНастраиваетсяПолный контроль у вас
Перед покупкой

Формулировка «мы поддерживаем SOCKS5» может не включать поддержку UDP. Если вам нужен UDP, спросите об этом прямо и протестируйте на пробной версии.

В каких сценариях это нужно?

Задачи, требующие UDP

  • Трафик онлайн-игр в реальном времени.
  • Протоколы голосовой и видеосвязи.
  • Передача DNS-запросов через прокси.
  • Некоторые потоковые (streaming) протоколы.
  • Соединения на базе QUIC / HTTP-3.

Задачи, не требующие UDP

  • Веб-скрапинг и сбор данных.
  • Управление аккаунтами в соцсетях.
  • Интеграции по API.
  • SEO и мониторинг цен.
  • Верификация рекламы.

О связи прокси и игр см. снижает ли прокси пинг в игре — в той статье мы также разобрали роль UDP в игровом трафике.

Примечание о QUIC и HTTP/3

Современный веб всё больше переходит на протокол QUIC, а QUIC работает поверх UDP. Если ваш прокси не передаёт UDP, клиент автоматически откатывается к HTTP/2 поверх TCP. Обычно это работает без проблем, но в некоторых случаях добавляет задержку.

СХЕМАМожно ли использовать QUIC?
РЕШЕНИЕПоддерживает ли прокси UDP?Да, UDP ASSOCIATE включёнДАQUIC/HTTP-3 возможенНЕТСмотрите нижеРедкая конфигурацияНет, только TCPДАОткат к HTTP/2НЕТПоведение по умолчаниюЦель отдаёт только HTTP/3ДАСоединение установить не удастсяНЕТОчень редко

Поскольку почти все сайты предоставляют запасной HTTP/2, на практике проблем не возникает. Тем не менее в задачах, чувствительных к задержке, об этом поведении стоит знать.

Тестирование

СХЕМАПроверка поддержки UDP
# подробный вывод curl — посмотрите строки CONNECT01# Попробовать отправить DNS-запрос по UDP через SOCKS502# (dig не поддерживает SOCKS напрямую; нужен инструмент вроде proxychains)0304# Альтернатива: сравнение с DNS поверх TCP05dig +tcp @1.1.1.1 example.com0607# Чтобы увидеть ответ UDP ASSOCIATE от SOCKS5-сервера,08# нужен низкоуровневый тестовый скрипт; большинство провайдеров09# явно указывают «поддержка UDP» в панели.1011# Практическая проверка: запросите у провайдера письменное подтверждение

Протестировать поддержку UDP из командной строки не так просто, как TCP. Самый быстрый путь — получить письменное подтверждение от провайдера и проверить на пробной версии в вашем реальном приложении.

Резюме

SOCKS5 умеет передавать UDP-трафик командой UDP ASSOCIATE — то, чего HTTP прокси не может никак. Однако поддержка не распространена; большинство коммерческих провайдеров держат UDP отключённым. Для веб-скрапинга, управления аккаунтами и сбора данных UDP вам не нужен. А в сценариях вроде игр, VoIP и DNS-туннелирования он незаменим, и его обязательно нужно подтвердить до покупки. Детали продукта — на нашу страницу SOCKS5-прокси можно посмотреть.

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

01Может ли HTTP прокси передавать UDP?

Нет. HTTP прокси работает только поверх TCP и никак не может передавать UDP-пакеты. В сценариях, требующих UDP, единственный вариант — SOCKS5.

02Все ли SOCKS5 прокси поддерживают UDP?

Нет. Несмотря на то что UDP ASSOCIATE описан в RFC, большинство коммерческих провайдеров держат его отключённым. Перед покупкой нужно прямо спросить об этом и провести тест.

03Смогу ли я играть без поддержки UDP?

Большинство современных игр передают трафик реального времени по UDP; если этот трафик не идёт через прокси, игра либо не подключится, либо установит прямое соединение. Через прокси пойдёт только TCP-трафик вроде входа в аккаунт и магазина.

04Могу ли я передавать DNS-запросы через SOCKS5?

Если есть поддержка UDP — да. Если нет, придётся использовать DNS поверх TCP или воспользоваться разрешением доменных имён средствами SOCKS5 (socks5h).

05Работает ли QUIC/HTTP-3 через прокси?

Поскольку QUIC работает поверх UDP, ваш прокси должен поддерживать UDP. Если поддержки нет, клиент автоматически откатывается к HTTP/2 поверх TCP; обычно это происходит без проблем.

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

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

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

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

FREEPROXY.TR

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

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