К основному содержанию
Proxy5GСтатьиВойти
Подключение и настройка

HTTP(S) и SOCKS5: какой протокол прокси выбрать

Объясняем различия HTTP(S)-прокси и SOCKS5, поддержку приложений, DNS и критерии выбора без лишней теории.

HTTP(S) и SOCKS5 — это два способа, которыми приложение может обратиться к прокси. Они не определяют происхождение IP: один и тот же мобильный канал может быть доступен через разные входные протоколы. Выбирать нужно тот режим, который поддерживает конкретная программа и который подходит её трафику.

Как работает HTTP(S)-прокси

HTTP-прокси понимает формат HTTP-запросов. Когда приложение открывает обычный HTTP-адрес, оно передаёт прокси запрос к целевому URL. Для HTTPS обычно используется метод CONNECT: прокси устанавливает TCP-туннель к указанным серверу и порту, после чего зашифрованный TLS-трафик проходит внутри туннеля.

Обозначение «HTTP(S)-прокси» часто означает, что через HTTP-прокси можно открывать и HTTP-, и HTTPS-сайты. Это отличается от отдельного HTTPS-прокси, где TLS защищает участок от клиента до самого прокси. Наличие такого шифрования нельзя выводить только из возможности открывать HTTPS-сайты: нужно смотреть схему адреса и документацию конкретного сервиса.

HTTP(S)-режим удобен для браузеров, HTTP-клиентов, парсеров и инструментов, которые явно имеют поле «HTTP proxy».

Как работает SOCKS5

SOCKS5 не разбирает прикладной HTTP-запрос. Клиент передаёт прокси команду и адрес назначения, а затем использует созданное соединение для данных своего приложения. Стандарт описывает команды CONNECT, BIND и UDP ASSOCIATE, но наличие этих возможностей в стандарте не гарантирует, что каждый сервис и каждый клиент поддерживает их все.

SOCKS5 часто выбирают программы, которым нужен более общий TCP-прокси и у которых есть явная поддержка SOCKS. Важная настройка — где разрешается DNS-имя: локально или на стороне прокси. Названия вроде socks5 и socks5h в разных инструментах могут обозначать разное поведение, поэтому нужно сверяться с документацией конкретного клиента.

Короткое сравнение

Вопрос HTTP(S) SOCKS5
Подходит для браузерного HTTP/HTTPS Обычно да Если браузер поддерживает SOCKS
Понимает HTTP-запрос Да Нет, передаёт поток на более общем уровне
HTTPS-туннель Обычно через CONNECT Через SOCKS-команду CONNECT
DNS Зависит от клиента и режима Зависит от клиента; может выполняться через прокси
UDP Не является общим свойством HTTP-прокси Предусмотрен стандартом, но может не поддерживаться сервисом
Настройка в приложениях Часто поле HTTP proxy Нужна явная поддержка SOCKS5

Как выбрать протокол

Начните не с теоретических преимуществ, а с возможностей программы:

  1. Если приложение предлагает только HTTP proxy, используйте HTTP(S).
  2. Если оно явно поддерживает SOCKS5 и работает не только с HTTP-трафиком, SOCKS5 может быть удобнее.
  3. Если важна обработка DNS на стороне прокси, проверьте отдельную настройку клиента и подтвердите результат тестом.
  4. Если сервис выдаёт разные адреса для HTTP и SOCKS5, не подменяйте один другим, даже когда порт и авторизация выглядят одинаково.
  5. После переключения перезапустите тестовое соединение: уже открытый поток не обязан перейти на новый протокол.

Типичные ошибки выбора

Протокол угадан по номеру порта

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

SOCKS5 введён в поле HTTP proxy

Программа начинает отправлять HTTP-команды туда, где ожидается SOCKS- рукопожатие, или наоборот. Результатом обычно становится немедленный разрыв, истечение времени ожидания или ошибка формата ответа.

Проверен только браузер

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

Ожидается автоматическая поддержка UDP

RFC 1928 определяет UDP ASSOCIATE, однако и прокси-сервис, и клиент должны реализовать этот режим. Без подтверждённой поддержки рассчитывать на него нельзя.

Безопасная проверка

Сначала откройте через прокси простой HTTPS-сайт и проверьте внешний IP. Затем проверьте именно целевое приложение. Если результат различается, сопоставьте его настройки с инструкцией по типичным ошибкам подключения.

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

В Proxy5G ориентируйтесь на протокол и реквизиты, показанные у конкретного подключения в разделе «Мои прокси». Наличие в статье двух протоколов не означает, что их можно переключать для любого выданного прокси.