Каждое подключение к прокси требует подтверждения доступа. Два стандартных способа: зарегистрировать свой IP и работать без учётных данных, или авторизоваться по логину и паролю при каждом запросе.
Привязка по IP отлично работает, когда адрес не меняется, но на домашнем подключении, ноутбуке, который переключается между сетями, или VPS с динамическим IP — нужен способ, который работает стабильно при смене адреса. Для этого и существует прокси сервер с логином и паролем.
Как работает авторизация по логину/паролю
Когда ваше ПО подключается к прокси, прокси запрашивает подтверждение доступа. При HTTP-авторизации клиент отправляет заголовок Proxy-Authorization, содержащий логин и пароль в кодировке Base64. Прокси проверяет учётные данные, и если они совпадают — трафик проходит. Быстрый пример с curl: curl -x http://username:password@proxy-address:port https://example.com - или в Python requests: requests.get("https://example.com", proxies={"https": "http://username:password@proxy-address:port"}).
При работе через SOCKS5 процесс немного отличается. Авторизация происходит на этапе рукопожатия — отдельный шаг до начала передачи данных. Клиент сообщает, что хочет авторизоваться, отправляет логин и пароль, прокси отвечает успехом или отказом. Только после этого начинается работа с сайтами.
Оба способа решают одну задачу: подтвердить доступ к прокси независимо от того, с какого IP вы подключаетесь.
Зачем использовать логин/пароль вместо привязки по IP
Режим без авторизации проще — нет секретов, ничего не нужно настраивать в софте, но он требует статического публичного адреса. Как только провайдер сменит IP — доступ пропадёт, пока вы не обновите привязку.
Авторизация по логину/паролю снимает эту зависимость. Ваш доступ к прокси работает из любой сети: офис, кафе, другая страна. Пока учётные данные верны и ваш IP попадает в подсеть /21 зарегистрированного адреса — соединение проходит. Большинство прокси-провайдеров ограничивают авторизацию по логину/паролю одним IP из белого списка или узким диапазоном /32. Подход FineProxy с подсетью /21 покрывает 2 048 адресов, поэтому динамическая смена IP практически никогда не обрывает сессию — такой уровень гибкости на рынке встречается редко.
Это важно для:
- Ноутбуков и устройств, которые переключаются между Wi-Fi сетями
- Домашних подключений, где провайдер выдаёт новый адрес раз в сутки
- Команд, где несколько человек подключаются из разных мест
- CI/CD пайплайнов на облачных серверах с меняющимися IP
Как это устроено у FineProxy
Привязка по IP обязательна на нашей платформе — именно так система идентифицирует клиентов. Когда поверх этого включена авторизация по логину/паролю, прокси принимает подключения с любого IP в рамках подсети /21 от зарегистрированного адреса, это 2 048 адресов.
Большинство провайдеров меняют динамические IP в гораздо более узком диапазоне, поэтому на практике подключение продолжает работать без ручных обновлений.
FineProxy поддерживает авторизацию по всем нашим протоколам: HTTP, HTTPS и SOCKS5. Для HTTPS на каждом IP выпущен свой SSL-сертификат, поэтому зашифрованное соединение между клиентом и прокси остаётся защищённым даже при работе с логином/паролем.
Учётные данные появляются в личном кабинете сразу после покупки. Формат простой: логин:пароль@адрес-прокси:порт для HTTP/HTTPS, или те же данные в настройках авторизации вашего SOCKS5-клиента.
После покупки учётные данные моментально появляются в личном кабинете — в формате username:password@address:port, готовые для вставки в браузер, скрипт или инструмент автоматизации.
Как не потерять учётные данные
Обратная сторона авторизации по логину/паролю — учётные данные существуют, и всё, что существует, может утечь. Несколько простых правил:
Используйте переменные окружения вместо вписывания данных прямо в код. export HTTPS_PROXY="http://user:pass@proxy:port" — и пароль не попадёт в исходники.
Не коммитьте учётные данные от прокси в Git-репозиторий. Даже приватные репозитории копируют, клонируют и бэкапят в места, которые вы не контролируете.
Если инструмент поддерживает — подтягивайте данные из менеджера паролей при запуске, а не храните их в конфиг-файлах.