IPv4kupit-proxy-ipv4.ru
ГлавнаяПодключение → Строка подключения

Строка подключения прокси: разбор по полям

Строка подключения прокси: разбор по полям, раздел «Подключение» справочника по прокси IPv4

Строка подключения прокси собирается по одному шаблону: схема://логин:пароль@адрес:порт. Схема задаёт протокол, логин с паролем открывают доступ, адрес и порт берутся из списка, который выдаёт кабинет. Когда доступ открыт привязкой рабочего адреса, середина с учётными данными убирается целиком, и остаётся короткая запись вида схема://адрес:порт.

Разбор страницы «Строка подключения прокси: разбор по полям» по разделам

Дальше разобрано каждое поле по отдельности: что оно означает, откуда берётся его значение, где его разрешено опустить и чем оборачивается ошибка. Отдельно собраны места ввода: переменные окружения, ключ командной строки, настройки библиотеки запросов, конфиг программы и поле антидетект-браузера. Завершает разбор таблица типовых опечаток с описанием того, что каждая даёт на выходе.

Из каких полей состоит строка

Строка подключения повторяет форму обычного веб-адреса, поэтому её читают почти все программы. Слева стоит схема и два слеша. Дальше идёт необязательная часть с учётными данными, она заканчивается символом собаки. Справа от собаки стоят хост и порт, разделённые двоеточием.

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

ПолеЧто означаетПример значенияКогда обязательно
СхемаПротокол общения с посредникомhttp, socks5hПочти везде, кроме полей с выпадающим списком типа
ЛогинИмя учётной записи пакетаuser5521При доступе по учётным данным
ПарольПароль той же учётной записиpf39kdПри доступе по учётным данным
СобакаГраница между учётной частью и хостом@Когда логин с паролем присутствуют
АдресХост посредника из выданного списка185.24.87.14Всегда
ПортПорт посредника из той же строки списка8000Всегда

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

Короткий вариант выглядит так: http://185.24.87.14:8000. Полный вариант с учётными данными выглядит так: http://user5521:[email protected]:8000. Обе записи ведут на один и тот же порт одного и того же посредника, различие сидит только в наличии учётной части. Мы выдаём список сразу в двух форматах, поэтому собрать любую из этих строк можно копированием, без ручной перепечатки цифр.

Схема: какие бывают и что каждая означает

Схема стоит первой и определяет, по какому протоколу программа договаривается с посредником. Здесь чаще всего и ошибаются: пишут https там, где нужен http, и получают отказ соединения на пустом месте. Схема описывает канал до посредника, при этом целевой сайт может открываться по любому протоколу.

СхемаЧто означаетРазрешение имёнГде встречается
httpОбычный HTTP-посредник, к нему же уходят и запросы к сайтам по HTTPS через туннельНа стороне программыcurl, переменные окружения, парсеры, браузеры
httpsКанал до самого посредника шифруетсяНа стороне программыПрограммы с поддержкой шифрованного канала до посредника
socks4Сокетный посредник ранней версии, учётных данных в протоколе нетНа стороне программыСтарые программы и конфиги
socks5Сокетный посредник с поддержкой учётных данныхНа стороне программыcurl, браузеры, антидетект-браузеры
socks5hТо же самое, имя целевого домена уходит на выходНа стороне посредникаcurl, python, программы на базе curl

Буква h в конце схемы отвечает за то, кто превращает имя домена в адрес. Без неё имя разрешает локальная машина, и наружу через обычный резолвер уходит сам домен. С ней имя уезжает внутрь туннеля и разрешается на выходе. Для работы через посредника вторая форма спокойнее, и в curl она пишется одной буквой. Подробности сокетного протокола разобраны там, где мы описываем прокси SOCKS5 с доступом к общему пулу.

Отличие http от https в схеме путает чаще прочего. Схема http не мешает открывать сайты по шифрованному протоколу: программа просит у посредника туннель методом CONNECT и дальше ведёт шифрованный обмен внутри него. Схема https означает другое: шифруется сам канал до посредника. Разбор туннеля и его поведения мы вынесли в материал про протоколы HTTP, HTTPS и SOCKS, здесь достаточно помнить, что первая часть строки описывает участок до посредника. Если программа умеет шифровать этот участок, ей подойдёт канал до посредника по HTTPS.

Адрес и порт: откуда они берутся

Оба значения приходят из кабинета. Список выдаётся в двух форматах: IP:PORT и IP:PORT:LOGIN:PASS. Забрать его можно ссылкой или файлом, оба варианта лежат в разделе выдачи. Список обновляется в реальном времени, пул держится в районе 12 000 активных адресов, ротация внутри пула автоматическая.

# формат из двух полей
185.24.87.14:8000
185.24.87.15:8000

# формат из четырёх полей
185.24.87.14:8000:user5521:pf39kd
185.24.87.15:8000:user5521:pf39kd

Превращение строки списка в строку подключения делается механически. Первое поле идёт в позицию адреса, второе в позицию порта, третье и четвёртое переезжают влево от собаки и меняются местами с хостом. Из строки 185.24.87.14:8000:user5521:pf39kd получается http://user5521:[email protected]:8000. Порядок полей в списке и порядок полей в строке подключения различаются, и это единственное место, где новичок путается.

# превращаем строку списка в строку подключения одной командой
awk -F: '{print "http://"$3":"$4"@"$1":"$2}' proxy.txt > urls.txt

Отдельный вопрос: какую строку списка брать. Пул устроен как микс со всего мира, ротация внутри него автоматическая, поэтому любая строка выдачи рабочая. Программы, которые ходят по списку сами, обычно берут строки по кругу или случайно. Для ручной проверки берём первую строку файла и не ищем в ней особого смысла: адреса равноправны, и результат от выбора строки не зависит.

Порт из списка используется без изменений. Придумывать другой порт по аналогии с чужими инструкциями бессмысленно: посредник слушает ровно тот порт, который выдан вместе с адресом. Мы отдаём список целиком, поэтому проверить порт можно прямо в файле выдачи, не заглядывая в переписку. Полный состав пакета описан там, где оформляется доступ к списку адресов IPv4.

Логин с паролем или доступ по привязке

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

Выбор между способами держится на одном вопросе: постоянный ли адрес у машины, с которой идут запросы. Сервер с постоянным адресом удобно привязать один раз и дальше работать короткими строками. Ноутбук, который переезжает между сетями, проще держать на учётных данных: строка длиннее, зато она работает из любой точки. Механику привязки мы разобрали в отдельном материале про привязку своего адреса.

Одна деталь влияет на расчёт нагрузки. При двух привязанных адресах общий лимит потоков делится между ними пополам: пакет на 1000 потоков даёт по 500 на каждый адрес. Если основной прогон идёт с одной машины, вторую привязку разумнее держать свободной до момента, когда она понадобится.

Смешивать способы в одной строке не нужно. Учётные данные, вписанные при работающей привязке, обычно проходят без возражений, потому что проверка права уже пройдена по адресу. Обратная ситуация даёт отказ: строка без учётной части с машины, чей адрес в настройках не указан, получает ответ 407 с требованием авторизации. Полный разбор этого кода мы вынесли в материал про ошибку 407.

Спецсимволы в пароле и процентное кодирование

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

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

СимволЗапись в строкеЧто ломает без кодирования
@%40Программа берёт хостом кусок пароля после собаки
:%3AПароль обрезается по первому двоеточию
/%2FНачинается разбор пути, хост теряется
?%3FОстаток строки уходит в параметры запроса
#%23Всё после знака отбрасывается как якорь
%%25Соседние символы читаются как код

Пароль p@ss:1 записывается как p%40ss%3A1, и строка целиком выглядит так: http://user5521:p%40ss%[email protected]:8000. Правая собака остаётся настоящим разделителем, левая уехала в код и разбор больше не путает. Считать коды руками не нужно, их выдаёт любая среда одной строчкой.

# кодируем пароль перед подстановкой в строку
python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=''))" 'p@ss:1'
# -> p%40ss%3A1
from urllib.parse import quote
user, pwd = "user5521", "p@ss:1"
url = f"http://{quote(user, safe='')}:{quote(pwd, safe='')}@185.24.87.14:8000"

Есть и обходной путь: многие программы принимают логин и пароль отдельными полями, и там кодирование не нужно вовсе. Поле есть поле, разделителей внутри него не ищут. Мы советуем именно этот вариант тем, кто работает через графические настройки: он снимает целый класс опечаток.

Переменные окружения: HTTP_PROXY, HTTPS_PROXY и NO_PROXY

Переменные окружения задают посредника сразу для всех программ, которые их читают. Это curl, wget, менеджеры пакетов, значительная часть библиотек на python, go и node. Имена пишутся в верхнем и нижнем регистре, часть программ смотрит только на нижний, поэтому выставляют обе формы.

export HTTP_PROXY="http://user5521:[email protected]:8000"
export HTTPS_PROXY="http://user5521:[email protected]:8000"
export NO_PROXY="localhost,127.0.0.1,.internal.local"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export no_proxy="$NO_PROXY"

Разберём назначение каждой. HTTP_PROXY указывает посредника для запросов к адресам без шифрования. HTTPS_PROXY указывает посредника для запросов к шифрованным адресам, и туда почти всегда пишется та же строка со схемой http: посредник тот же, отличается только целевой протокол. NO_PROXY перечисляет через запятую хосты, которые идут напрямую: локальная машина, внутренние имена, адреса стенда.

Частая ошибка здесь одна: в HTTPS_PROXY пишут схему https, ожидая симметрии с именем переменной. Имя переменной говорит про целевой протокол, схема внутри значения говорит про канал до посредника. Пока посредник принимает обычный HTTP-канал, правильная запись обеих переменных совпадает буква в букву.

В Windows те же значения выставляются через PowerShell, синтаксис отличается, смысл прежний.

$env:HTTP_PROXY  = "http://user5521:[email protected]:8000"
$env:HTTPS_PROXY = "http://user5521:[email protected]:8000"
$env:NO_PROXY    = "localhost,127.0.0.1"

Ключ curl и настройки библиотеки запросов

В curl строка подключения передаётся ключом -x либо длинной формой --proxy. Ключ перекрывает переменные окружения, поэтому проверять конкретный адрес удобнее именно им: окружение остаётся нетронутым, а команда работает через нужного посредника.

# доступ по привязанному адресу
curl -x http://185.24.87.14:8000 https://ifconfig.me

# доступ по учётным данным пакета
curl -x http://user5521:[email protected]:8000 https://ifconfig.me

# учётные данные вынесены отдельным ключом, кодировать ничего не нужно
curl -x http://185.24.87.14:8000 -U 'user5521:p@ss:1' https://ifconfig.me

# сокетный вариант с разрешением имени на выходе
curl -x socks5h://user5521:[email protected]:8000 https://ifconfig.me

Ключ -U спасает там, где пароль набит служебными знаками: curl принимает пару отдельным аргументом и сам собирает запрос. Проверить, какая строка ушла в работу, помогает подробный вывод: curl -v показывает установку туннеля и заголовок авторизации.

В python библиотека запросов принимает словарь, где ключом идёт целевой протокол, а значением та самая строка подключения. Схема socks5h требует установленного пакета PySocks, без него библиотека сообщит о неизвестном типе посредника.

import requests

proxies = {
    "http":  "http://user5521:[email protected]:8000",
    "https": "http://user5521:[email protected]:8000",
}
r = requests.get("https://ifconfig.me", proxies=proxies, timeout=15)
print(r.status_code, r.text)

# сокетный вариант, имя домена разрешает выход
socks = {
    "http":  "socks5h://user5521:[email protected]:1080",
    "https": "socks5h://user5521:[email protected]:1080",
}

Ключ словаря https описывает целевой протокол, схема внутри значения описывает канал до посредника. Та же логика, что и в переменных окружения. Если библиотеке передан пустой словарь, она всё равно подхватит окружение, поэтому при отладке окружение отключают явно параметром trust_env.

Куда ещё вводится строка: конфиги и антидетект-браузер

Мест ввода много, при этом форма записи меняется от программы к программе. Где-то принимают строку целиком, где-то ждут отдельные поля, где-то тип посредника выбирается из списка и схема в тексте становится лишней. Ниже сведены основные места.

Место вводаФорма записиОсобенности
Переменные окруженияСтрока целикомДействует на все программы, читающие окружение
Ключ -x в curlСтрока целикомПерекрывает окружение, пара выносится ключом -U
Словарь в pythonСтрока целиком по каждому протоколуСокетные схемы требуют PySocks
Конфиг программыОтдельные поля хоста, порта и учётных данныхКодирование не нужно, разделителей внутри полей нет
Настройки браузераОтдельные поля плюс флажок передачи имёнТип посредника выбирается радиокнопкой
Антидетект-браузерОтдельные поля в карточке профиляЧасто есть вставка строки целиком с автозаполнением
Ключ запуска ChromiumСтрока без учётной частиУчётные данные вводятся во всплывающем окне

Антидетект-браузеры стоят особняком: там строка живёт внутри карточки профиля и применяется ко всему трафику этого профиля. Обычно предлагается выбрать тип из списка, заполнить хост и порт, затем логин и пароль отдельными полями. Многие сборки умеют разбирать вставленную строку IP:PORT:LOGIN:PASS и раскладывать её по полям сами, кнопка обычно подписана как быстрый импорт. Мы держим форматы выдачи ровно под такую вставку, и для профилей это удобнее ручного набора. Детали настройки описаны на странице про прокси для антидетект-браузеров.

Конфиги серверных программ принимают строку по-разному: одни читают её из отдельной директивы целиком, другие разносят по нескольким параметрам. Общее правило простое: если поле называется хостом, порт туда не пишут. Практику работы с конфигами и планировщиками мы собрали в разборе подключения в программах и на сервере.

Запись SOCKS в разных программах

Сокетный вариант записывается несколькими способами, и это вторая по частоте причина неработающей настройки. В curl и в библиотеках на его основе схема пишется прямо в строке: socks5:// или socks5h://. В браузерах на движке Gecko тип выбирается радиокнопкой, поля хоста и порта заполняются отдельно, а передача имён на сторону посредника включается флажком. В браузерах на движке Chromium схема указывается ключом запуска. В парсерах и чекерах тип посредника выбирается из выпадающего списка, и в текстовое поле идёт голая пара IP:PORT.

# curl: схема прямо в строке
curl -x socks5h://185.24.87.14:1080 https://ifconfig.me

# Chromium: схема в ключе запуска
chrome --proxy-server="socks5://185.24.87.14:1080"

# git: сокетный посредник для операций с удалённым репозиторием
git config --global http.proxy socks5h://185.24.87.14:1080

# ssh через сокетного посредника
ssh -o ProxyCommand='nc -X 5 -x 185.24.87.14:1080 %h %p' [email protected]

Отдельно про порт. Сокетный посредник часто слушает другой порт, чем HTTP-вариант, поэтому подставлять порт из соседней строки списка бессмысленно. Берём порт из той строки, которую собираемся использовать. В пакете доступны обе версии сокетного протокола, при этом старшая поддерживает учётные данные и передачу имён, поэтому мы рекомендуем именно её. Полный состав того, что открывается вместе с сокетным доступом, описан на странице, где можно купить прокси SOCKS5 для парсеров и скриптов.

Программы с полем для одной строки иногда принимают сокращённую запись без схемы. Тогда тип берётся из соседнего выпадающего списка, и дублировать его текстом вредно: часть сборок склеивает выбранный тип со схемой из строки и получает нерабочую комбинацию.

Типовые ошибки записи и что каждая даёт на выходе

Ошибки в строке подключения дают предсказуемые симптомы, и по симптому обычно видно поле, где сидит опечатка. Таблица ниже собрана по обращениям в поддержку.

Ошибка записиЧто видно в работеЧто править
Пропущены два слеша после схемыПрограмма сообщает о неизвестном адресеЗаписать http://, а форму http: убрать
Схема https при обычном каналеОтказ соединения или ошибка рукопожатияПоставить схему http
Собака внутри пароля без кодированияХостом становится хвост пароля, имя не разрешаетсяЗаписать %40
Порт взят из соседней строки спискаСоединение висит и обрывается по таймаутуВзять порт из своей строки
Логин и пароль переставлены местамиОтвет 407 с требованием авторизацииСлева логин, справа пароль
Порядок полей списка перенесён как естьОшибка разбора адресаУчётные данные слева от собаки
Пробел в конце строки из файлаОтказ разобрать портОбрезать пробелы и возврат каретки
Схема socks5 там, где нужны имена на выходеРаботает, при этом имена уходят мимо туннеляЗаписать socks5h
Учётные данные при работающей привязкеРаботает штатноПравить ничего не требуется

Пробелы и возврат каретки заслуживают отдельного слова. Файл выдачи, открытый в редакторе на Windows и сохранённый оттуда же, приносит в каждую строку невидимый символ. Программа честно добавляет его к порту и не может превратить результат в число. Симптом выглядит загадочно, лечится одной командой.

# показать невидимые символы в конце строк
cat -A proxy.txt | head -3

# убрать возврат каретки
sed -i 's/\r$//' proxy.txt

Ещё одна ошибка живёт вне самой строки: переменные окружения выставлены в одном терминале, а программа запускается из другого. Строка написана верно, при этом процесс её не видит. Проверяется командой env | grep -i proxy в том же окне, откуда идёт запуск. Мы обычно советуем на время отладки вообще отказаться от окружения и передавать посредника ключом: так видно, какая именно строка ушла в работу.

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

Последнее замечание про регистр и лишние кавычки. Схема пишется строчными буквами, кавычки нужны только в оболочке и внутрь значения не входят. Строка, скопированная вместе с кавычками в графическое поле настроек, превращает кавычку в первый символ хоста, и программа ищет несуществующее имя. Проверка занимает секунду: посмотреть на начало поля глазами.

Частые вопросы

В каком формате выдаётся список прокси?

Форматов два: IP:PORT и IP:PORT:LOGIN:PASS. Первый подходит при доступе по привязанному адресу, второй содержит учётные данные и превращается в полную строку подключения. Забрать список можно ссылкой или файлом, оба варианта доступны в кабинете, содержимое обновляется в реальном времени.

Какой тип прокси лучше указывать в строке?

В пакете IPv4 и SOCKS5 доступны обе версии сокетного протокола на выбор, и мы рекомендуем старшую: она поддерживает учётные данные и передачу имён на сторону выхода. Для браузеров и парсеров, которые ходят по вебу, ровно так же хорошо работает HTTP-посредник из того же пакета.

Как подключиться к прокси после покупки?

Всё делается в кабинете: после регистрации и оплаты указывается свой адрес в настройках, пакет включается примерно за 5 минут. Дальше берётся строка из списка выдачи и вписывается в программу. Если поведение софта заранее неизвестно, перед покупкой доступен бесплатный тест до 2 часов под свой запрос.

Сколько адресов можно привязать к пакету?

В стоимость входит одновременная привязка 2 адресов, менять их разрешено без ограничений прямо в настройках. При двух привязанных адресах общее число потоков делится между ними пополам: пакет на 1000 потоков даёт по 500 на каждую машину. Корпоративный вариант поднимает лимит до 3000, при этом пакеты по потокам не складываются.

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

Материал сайта kupit-proxy-ipv4.ru. Рабочие адреса IPv4 и SOCKS5: iprazon.com.