Короткие ответы
В чём разница между HTTP-прокси и SOCKS5?
HTTP-прокси обрабатывает HTTP-запросы и открывает туннель CONNECT для HTTPS. SOCKS5 сначала согласует соединение с адресом и портом назначения, затем передаёт данные приложения. Поддержка протокола и поддержка авторизации — отдельные возможности клиента.
Подходит ли HTTP-прокси для HTTPS-сайта?
Да. Клиент открывает CONNECT через HTTP-шлюз, а затем устанавливает TLS-соединение с сайтом внутри туннеля. Схема http:// в адресе шлюза не отменяет HTTPS у сайта. Проверку сертификата назначения нужно сохранить.
Что означает socks5h?
В curl схема socks5h:// передаёт имя сайта на разрешение прокси. Схема socks5:// означает локальное разрешение имени. Это обозначения клиента: другая программа может выбирать DNS отдельным параметром, а не буквой в URL.
Какой протокол быстрее?
Название протокола не даёт ответа. На время влияют маршрут, DNS, повторное использование соединения и работа сайта. Сравнивайте одну разрешённую задачу при одинаковых настройках. Измерений, позволяющих обещать преимущество одного протокола, здесь нет.
Какой порт использовать?
Для HTTP используйте 7000, для SOCKS5 — 7001. Учётные данные общие; пул, страна и режим ротации задаются в имени пользователя. Совместите схему с правильным портом, затем проверьте запрос из нужного приложения.
Что делает HTTP-прокси
При запросе обычного HTTP-ресурса шлюз получает адрес назначения и участвует в передаче HTTP-сообщения. Для HTTPS порядок другой: клиент запрашивает туннель CONNECT, дожидается согласия шлюза и начинает TLS-обмен с сайтом. Поэтому отказ открыть туннель и ответ самого сайта нужно записывать отдельно. Их нельзя свести к одному признаку «прокси работает».
В обычном туннеле, при корректной проверке сертификата и без доверенного перехвата TLS, HTTPS защищает путь, заголовки и тело запроса. Шлюзу всё равно известны адрес или имя назначения, порт и параметры передачи. Кроме того, CONNECT не шифрует начальную Basic-авторизацию на HTTP-соединении до открытия туннеля. Описание CONNECT — на английском.
Что меняется при SOCKS5
В SOCKS5 клиент сначала согласует способ авторизации, при необходимости передаёт имя пользователя и пароль, затем указывает назначение. Согласование происходит до обмена данными приложения. Отказ на этом этапе имеет формат SOCKS, а не HTTP 407. Но HTTP-запрос, который позже прошёл через установленное соединение, по-прежнему может получить HTTP-ошибку от сайта.
SOCKS5 может передавать TCP-протоколы помимо HTTP. Это свойство стандарта, а не обещание, что конкретный сервис разрешает любые адреса, порты и задачи. Стандарт также описывает UDP ASSOCIATE, но перед использованием нужны подтверждения со стороны клиента и шлюза. Примеры ниже проверяют HTTPS поверх TCP; работу UDP или QUIC они не подтверждают. Стандарт SOCKS5 — на английском.
Само подключение по SOCKS5 не добавляет шифрование. В частности, согласование с именем и паролем не защищает эти значения шифрованием канала. Для HTTPS-назначения продолжайте проверять сертификат сайта. Смена порта не исправляет недоверенный сертификат и не заменяет защищённый протокол приложения. Описание парольной авторизации — на английском.
Сравните требования своего клиента
| Проверка | HTTP-прокси | SOCKS5 |
|---|---|---|
| Соединение с HTTPS-сайтом | Сначала CONNECT, затем TLS | Сначала SOCKS, затем TLS |
| Учётные данные | Параметры прокси и Proxy-Authorization | Авторизация во время согласования SOCKS |
| DNS назначения в curl | Шлюз разрешает переданное ему имя | Локально с socks5; на прокси с socks5h |
| Ошибки подключения | Статус CONNECT отдельно от статуса сайта | Ошибка SOCKS отдельно от ответа приложения |
| Дополнительные зависимости | Проверьте интерфейс HTTP-клиента | Может понадобиться отдельный пакет |
Проверьте не только наличие пункта SOCKS5 в настройках, но и поддержку имени с паролем. Chrome поддерживает маршрутизацию через SOCKS5, однако не поддерживает его методы авторизации. Для такого браузера с парольным прокси начните с HTTP. Это ограничение клиента, а не доказательство неверного пароля. Документация Chromium — на английском.
Где разрешается имя сайта
Если curl передаёт HTTP-шлюзу имя назначения, шлюз разрешает его на своей стороне. Для SOCKS curl позволяет выбрать локальное разрешение или передать имя прокси. Ответы DNS могут отличаться, поэтому при сравнении фиксируйте этот параметр. Не переносите обозначение socks5h в другое приложение без проверки документации: синтаксис одного клиента не расширяет возможности другого.
Разрешение имени на стороне прокси не доказывает, что DNS-сервер находится в стране выхода. Оно также не меняет язык браузера, cookie, регион аккаунта или разрешение на геолокацию. Для регионального QA проверьте эти условия отдельно. Echo-сервис сообщает IP, с которого получил запрос; он не устанавливает физическое расположение устройства и не предсказывает регион, который покажет сайт.
Проверьте оба варианта через curl
Откройте интерактивный терминал с sh, bash или zsh. Возьмите полное имя пользователя из конструктора подключения — на английском. Замените им каждое полное примерное имя в командах: для сравнения нужны одинаковые пул, страна и режим ротации. В исходных примерах ниже эти значения различаются. Коды стран в строках служат примерами и не подтверждают наличие.
В блоке две отдельные проверки. Каждая запрашивает исходный пароль в терминале. Во второй тело ответа не выводится; показаны коды CONNECT и сайта. Комментарии в проверенном коде сохранены на английском.
# Replace USERNAME with the account part shown in the dashboard.
# Enter the password at each curl prompt; leave it out of the command.
curl --disable --silent --show-error --noproxy '' --connect-timeout 5 --max-time 15 -x "http://gw.portproof.org:7000" \
--proxy-user "USERNAME-mbl-us-rot-auto10" \
https://api.portproof.org/v1/echo-ip
# record tunnel and destination statuses separately
curl --disable --silent --show-error --noproxy '' --connect-timeout 5 --max-time 15 -o /dev/null -w 'connect=%{http_connect} target=%{response_code}\n' \
-x "http://gw.portproof.org:7000" \
--proxy-user "USERNAME-mbl-us-rot-auto10" \
https://api.portproof.org/v1/echo-ipЭто ещё один запрос и отдельный ввод пароля. Для сравнения используйте то же полное сгенерированное имя пользователя, что и в HTTP-проверке.
curl --disable --silent --show-error --noproxy '' --connect-timeout 5 --max-time 15 -x "socks5h://gw.portproof.org:7001" \
--proxy-user "USERNAME-peer-nl-rot-ondemand" \
https://api.portproof.org/v1/echo-ipПароль вводите как есть, без URL-кодирования. Не добавляйте его к имени в команде: подстановка переменной тоже создаёт аргумент процесса. Для фоновой задачи используйте свой механизм секретов. Таймауты ограничивают соединение и передачу, но не ожидание ввода пароля. Команды не следуют перенаправлениям; они отключают стандартный файл настроек curl и исключения прокси для этой проверки.
Правильно прочитайте результат
Успех означает ожидаемый статус и содержимое ответа. Завершение curl без транспортной ошибки само по себе не исключает ответ 4xx или 5xx. Значение target=000 означает отсутствие HTTP-ответа назначения, а не код, присланный сайтом. Ошибки авторизации разобраны в руководстве по 407, остальные этапы — в проверке через curl.
Проверки расходуют трафик. Ограничьте число запросов и используйте небольшой ответ. Для сравнения задержек сохраните клиент, назначение и настройки, а затем выполните небольшой согласованный набор наблюдений. Разница времени до соединения и до первого байта включает несколько этапов; это не чистое время работы сайта. Один быстрый ответ не устанавливает преимущество протокола.
Перенесите настройку в приложение
После curl повторите один разрешённый запрос из рабочего процесса. Для Python есть руководство Requests; для браузера — инструкция Playwright. Сверьте схему, порт, источник пароля и исключения. Успешный терминальный тест не передаёт эти параметры контейнеру, браузеру или фоновому исполнителю.
Выбор HTTP или SOCKS5 не задаёт ротацию. Её параметры входят в имя пользователя; открытое соединение может использоваться повторно. Sticky-сессия сохраняет устройство, но его IP может измениться. Подробности есть в руководстве по сессиям. Остальные материалы собраны в русском разделе.
Допустимое использование
Используйте любой протокол для разрешённых исследований, мониторинга и QA. Поддержка соединения не даёт права на доступ к чужому сервису. Правила использования — на английском.