Справочник настроек прокси инструкции по программам

BitBrowser настройка прокси: поля окружения, сохранённый список и пакетная раздача адресов

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

1. Что понадобится

Установленный клиент BitBrowser под Windows или macOS, вход в аккаунт и открытый раздел «Окна браузера». Выгрузка адресов нужна в одном из двух видов: IP:PORT, когда авторизация идёт по привязанному в кабинете адресу, и IP:PORT:LOGIN:PASS, когда авторизация идёт парой логина и пароля. Протокол берите SOCKS5 или HTTP, форма окружения принимает оба напрямую. Если планируется запуск окон из скрипта, включите локальный интерфейс в настройках программы заранее: без этого порт 54345 останется закрытым и первый же вызов curl вернёт отказ соединения.

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

Полезно сразу посчитать потоки. На обычных пакетах их 1000, на корпоративном до 3000, пакеты по потокам не складываются, при двух привязанных адресах лимит делится пополам между ними. Одно открытое окно BitBrowser с активной лентой и подгрузкой картинок держит десятки соединений одновременно, так что арифметика перестаёт быть отвлечённой уже на третьем десятке окружений. Трафик безлимитный, считать нужно только потоки.

2. Поля прокси в окне создания окружения

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

Поле формыЧто вписыватьЗамечание
Способ подключения«Без прокси», «Свой прокси», «Извлечение по ссылке», «Из сохранённых»«Свой прокси» кладёт адрес внутрь окружения, «Из сохранённых» подтягивает запись из общего списка
Тип проксиHTTP, HTTPS, SOCKS5, SSHтип берётся из формата выгрузки, подбирать перебором бессмысленно
Хост проксиадрес до первого двоеточиябез схемы socks5:// и без пробелов по краям
Портчисло после двоеточияодно число, диапазон форма отклонит
Аккаунт проксилогин из парыполе пустует при авторизации по привязанному адресу
Пароль проксипароль из парырегистр важен, копируйте строку целиком
Сервис проверки IPip-api, ipapi, IP2Locationот сервиса зависит, какой город и часовой пояс покажет проверка
Ссылка извлеченияадрес выдачи спискаполе появляется только в режиме «Извлечение по ссылке»
Менять адрес при каждом запускефлажокработает вместе с режимом извлечения

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

Режим «Извлечение по ссылке» устроен иначе остальных трёх. Программа при старте окна дёргает указанный HTTP-адрес, читает ответ и разбирает из него строку подключения. Выдача списка ссылкой в кабинете сервиса подходит сюда напрямую, отдельного переходника писать не нужно. Флажок смены адреса при каждом запуске заставляет BitBrowser ходить по ссылке заново перед каждым открытием окна, и это удобно для карточек, которым свежий адрес нужнее постоянного.

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

3. Сохранённый список адресов и адрес внутри окружения

Хранить адреса в BitBrowser можно двумя способами, и выбор определяет, во что превратится замена выгрузки через неделю. Первый способ кладёт хост, порт и пару прямо в окружение. Второй складывает записи в раздел «Управление прокси» и оставляет в окружении ссылку на строку общего списка.

ПризнакАдрес внутри окруженияЗапись в сохранённом списке
Где лежитв самой карточке окнав разделе «Управление прокси»
Замена адреса у 60 окруженийправка каждой формы или повторный импортправка одной записи списка
Группировка и заметкитолько поле «Примечание» карточкигруппы, заметки, фильтр по группе
Видно занятость адресапо колонке адреса в списке оконпо колонке адреса плюс группа записи
Подходит для5-10 разовых карточекпостоянному парку окружений
Риск задвоить адресвысокийнизкий, повтор виден при вставке

Я перешёл на сохранённый список после простой арифметики: смена выгрузки при 60 окружениях это 60 открытий формы, а через общий список те же 60 карточек переезжают за десяток правок. Поле вставки в разделе «Управление прокси» принимает многострочный текст, так что пачка строк заходит одним движением. Форматы записи там свободнее, чем в карточке окна.

198.51.100.44:8000:u7712:Qd4mZr9t
socks5://u7712:Qd4mZr9t@198.51.100.44:8000
http://u7712:Qd4mZr9t@203.0.113.19:3128
203.0.113.19:3128

Записи в сохранённом списке я раскладываю по группам сразу при вставке, потому что позже разбирать сотню однотипных строк по назначению становится долго. Имя группы у меня совпадает с именем группы окружений, поэтому фильтр в разделе «Управление прокси» и фильтр в списке окон дают одинаковую выборку. В заметку к записи кладу дату выгрузки. Через две недели по этой дате видно, какие строки пора обновить, и обновление идёт целой группой без перебора карточек поштучно.

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

4. Пакетное создание окружений из файла

Кнопка «Пакетное создание» рядом с созданием окна открывает загрузку таблицы. Шаблон скачивается тут же файлом .xlsx, и заголовки колонок в нём переименовывать запрещено: разбор идёт по именам, порядок колонок роли не играет.

Колонка шаблонаЧто кладуОбязательна
Имя окнаметка вида mkt-014нет, подставится порядковый номер
Группаимя группы, куда упадут окружениянет
Примечаниедата выгрузки и назначение карточкинет
Тип проксиsocks5, http, https или noproxyда, если адрес задан
Хост проксиадрес без порта и без схемыда, если тип задан
Порт проксипорт числомда, если тип задан
Аккаунт проксилогин парынет
Пароль проксипароль парынет
Версия ядраномер ветки Chromiumнет, возьмётся текущая
Платформаадрес целевого сайтанет
Аккаунт и парольучётные данные сайтанет

Раскладывать выгрузку IP:PORT:LOGIN:PASS по четырём колонкам руками я перестал давно. Строки режет короткий скрипт, он же собирает готовый CSV, который Excel открывает и сохраняет в шаблон без правок:

$i = 0
Get-Content .\pool.txt | ForEach-Object {
  $p = $_.Trim() -split ':'
  $i++
  [pscustomobject]@{
    Name = 'mkt-{0:d3}' -f $i
    Type = 'socks5'
    Host = $p[0]
    Port = $p[1]
    User = $p[2]
    Pass = $p[3]
  }
} | Export-Csv .\windows.csv -NoTypeInformation -Encoding UTF8

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

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

5. Кнопка проверки прокси и её границы

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

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

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

Четыре пробела я закрываю руками, четырьмя короткими действиями. Запускаю окружение и держу открытой страницу с автообновлением минуты три, смотрю, не рвётся ли канал. Открываю сервис проверки WebRTC и убеждаюсь, что локального адреса машины в выдаче нет. Открываю страницу проверки разрешения имён и смотрю, чей сервер отвечает. Только после этого иду на целевую площадку. Полный проход занимает около 5 минут на окружение, при массовом заведении я прогоняю выборочно каждое десятое.

6. Раздача адресов по окружениям

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

Тип паркаОкружений на адресЧто учесть при раздаче
Разовая ручная работа1адрес виден только этой карточке, проверка занимает минуту
Постоянные аккаунты одной площадки2-3одинаковый часовой пояс у всех карточек группы
Массовый сбор данных5-8считайте потоки, каждая вкладка это отдельное соединение
Фоновый обход страниц10 и большеставьте паузы, одновременный старт десятка окон даёт всплеск

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

Пул около 12 000 адресов позволяет не жаться при раздаче. Разные площадки я развожу по разным выгрузкам, чтобы группы не пересекались по строкам. Для окружений, где важно минимальное количество служебных заголовков на выходе, беру анонимные адреса для рабочих окружений. Когда парк живёт постоянно и окна открываются каждый день, я развожу выгрузки по группам заранее, и разбор такой раздачи для соседнего антидетекта собран на странице про выдачу списка для профилей Dolphin Anty. Включение пакета занимает около 5 минут, а бесплатный тест до 2 часов я использую перед новой раздачей, чтобы проверить формат выгрузки на паре карточек.

7. Локальный интерфейс BitBrowser и запуск окружений из кода

Программа поднимает у себя HTTP-сервер на порту 54345. Включается он в настройках клиента, там же видно текущее состояние. Через этот интерфейс окружение стартует, отдаёт адрес отладочного порта и подхватывается драйвером автоматизации. Все вызовы идут методом POST с телом JSON.

API=http://127.0.0.1:54345

curl -s "$API/health"
curl -s -X POST "$API/browser/list" -H 'Content-Type: application/json' \
     -d '{"page":0,"pageSize":50}'
curl -s -X POST "$API/browser/open" -H 'Content-Type: application/json' \
     -d '{"id":"9f2c41ab7d0e4c","args":["--disable-gpu"]}'
curl -s -X POST "$API/browser/close" -H 'Content-Type: application/json' \
     -d '{"id":"9f2c41ab7d0e4c"}'

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

Ответ на открытие содержит ws, http, driver и pid. Значение ws подставляется в подключение Puppeteer или Playwright, driver указывает на подходящий по версии chromedriver для Selenium. Держите паузу в 1-2 секунды между стартами, иначе клиент не успевает поднять окна и отвечает пустым телом.

Адрес посредника меняется тем же интерфейсом, без открытия формы руками. Пакетная правка принимает список идентификаторов:

{
  "ids": ["9f2c41ab7d0e4c", "3b71de55c9a248"],
  "proxyMethod": 2,
  "proxyType": "socks5",
  "host": "198.51.100.44",
  "port": 8000,
  "proxyUserName": "u7712",
  "proxyPassword": "Qd4mZr9t",
  "ipCheckService": "ip-api"
}

Запрос уходит на /browser/proxy/update. Именно им я обновляю парк после смены выгрузки: скрипт читает свежий файл, сопоставляет строки с идентификаторами окон и рассылает правки пачками по 20 карточек. Шесть десятков окружений переезжают примерно за минуту. Поле proxyMethod со значением 2 говорит программе, что адрес свой и лежит в теле запроса, значение 3 переключает окружение на режим извлечения по ссылке.

Пара мелочей про поведение интерфейса, которые сберегают время. Повторный вызов открытия для уже запущенного окна вернёт тот же отладочный порт без перезапуска, поэтому скрипт можно дёргать без опаски. Вызов /health отвечает мгновенно и служит дешёвой проверкой перед серией запросов. Закрытие через /browser/close сохраняет куки окружения корректно, чего не делает снятие процесса из диспетчера задач. Проверить, что порт открыт, можно одной строкой:

Test-NetConnection -ComputerName 127.0.0.1 -Port 54345 | Select-Object TcpTestSucceeded

8. Хранение учётных данных

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

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

export PROXY_USER=u7712
export PROXY_PASS=Qd4mZr9t
setx PROXY_USER "u7712"
setx PROXY_PASS "Qd4mZr9t"

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

9. Проверка после настройки

Окружение запускается кнопкой «Открыть» в списке окон. Первая вкладка поднимается за 3-5 секунд. Долгая пауза на старте почти всегда означает, что канал до посредника не встал и браузер досиживает таймаут.

Порядок, который я прохожу на каждой новой раздаче адресов:

1. Открыть сервис определения адреса и сверить показанное значение со строкой карточки. Совпадения по последнему октету достаточно. 2. Открыть страницу проверки WebRTC. Локальных адресов вида 192.168.* в выдаче быть не должно. 3. Сверить часовой пояс страницы с часовым поясом окружения. Расхождение означает, что режим определения по адресу выхода не включился. 4. Открыть вторую вкладку и обновить обе разом, посмотреть, держится ли адрес. 5. Оставить окно открытым на 10 минут с активной страницей и вернуться: внутри сессии адрес должен остаться прежним.

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

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

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

10. Разбор ошибок

Сообщение или симптомПричинаЧто делать
Проверка прокси возвращает «Сбой соединения»опечатка в хосте или порте, пробел по краям поляперевставить строку целиком, убрать пробелы, повторить проверку
ERR_PROXY_CONNECTION_FAILED при открытии окнаадрес выпал из выгрузкивзять свежую выгрузку и обновить запись в разделе «Управление прокси»
ERR_TUNNEL_CONNECTION_FAILED на части сайтовцелевой порт закрыт на маршрутепереключить тип на SOCKS5, он пропускает произвольные порты
407 Proxy Authentication Requiredпара логина и пароля не подставиласьпроверить поля аккаунта и пароля, при пустых полях включить привязку адреса в кабинете
Окно открылось и показывает адрес самой машиныв форме остался способ «Без прокси»вернуть «Свой прокси» или «Из сохранённых» в поле способа подключения
Проверка проходит, окно стартует минутуодновременный запуск множества окруженийразвести старты паузами по 1-2 секунды
Сервис проверки IP не отвечаетсторонний сервис определения недоступенпереключить сервис на другой из списка в форме
Часовой пояс окружения не совпал с адресомрежим определения по адресу выхода выключенвключить автоопределение в блоке отпечатка и перезапустить окно
Локальный интерфейс отвечает отказоминтерфейс выключен в настройках или порт 54345 занятвключить интерфейс, при занятом порте сменить его там же
Пакетная загрузка отклонила все строкизаголовки колонок переименованы или тип записан заглавнымискачать шаблон заново и привести тип прокси к нижнему регистру
Режим извлечения по ссылке отдаёт пустой адресссылка выдачи устарела или отвечает с задержкойпересоздать ссылку в кабинете и проверить ответ через curl

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

Соседние страницы справочника по антидетект-браузерам показывают ту же настройку в других программах: настройка прокси в AdsPower с её справочником адресов, подключение адресов в GenLogin и работа с прокси в Octo Browser, где раскладка по группам устроена по-своему. Когда через посредник нужно провести обычный Chrome на той же машине, смотрите страницу про переключение профилей в SwitchyOmega.