Содержание

Перенаправление внутреннего трафика BAS через ваш собственный прокси

Функция появилась в BrowserAutomationStudio 28.9.2

Скриптам BAS время от времени нужно обращаться к инфраструктуре Bablosoft для обновления скриптов, получения отпечатков или скачивания дополнительных дистрибутивов (Chromium, Node JS и т. д.). Начиная с v28.9.2 вы можете указать скомпилированному скрипту отправлять весь этот служебный трафик через прокси, который контролируете вы.


Где указать настройки прокси

При компиляции скрипта BAS показывает окно Compile Script. В правом нижнем углу, в разделе Additional settings, появилось поле Connection config – на скриншоте оно выделено жёлтым. Вставьте туда либо JSON-строку, либо URL. После компиляции передайте обновлённый скрипт среди пользователей.

Новые настройки прокси начнут работать только после того, как скрипт будет обновлён у пользователя.

Перекомпилировать и заново распространять приложение при каждой смене прокси неудобно, поэтому смотрите раздел «URL удалённой конфигурации».


Формат JSON (встроенный или удалённый)

Следующую JSON-строку можно вставить прямо в поле «Connection config»:

{
  "main.server.proxy":         "socks5://login:pass@proxy.example:1080",
  "fingerprints.server.proxy": "socks5://login:pass@proxy.example:1080",
  "downloads.server.proxy":    "socks5://login:pass@proxy.example:1080"
}

Объяснение ключевых параметров:

main.server.proxy Все запросы к API *bablosoft.com* и загрузки Node JS.
fingerprints.server.proxy Запросы к *fingerprints.bablosoft.com*.
downloads.server.proxy Крупные ресурсы, такие как движок Chromium, с *downloads.bablosoft.com*.

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


URL удалённой конфигурации

Вместо того чтобы вшивать JSON в каждый билд, можно вставить URL в параметр Connection config.

Этот URL должен отдавать JSON в таком же формате, как описано выше.

При каждом запуске скомпилированный скрипт запрашивает JSON по указанному URL и применяет прокси на лету, что позволяет менять или ротировать прокси без перекомпиляции.


Запуск SOCKS5-прокси (Danted)

Используйте данные инструкции для установки прокси https://github.com/Lozy/danted

Автозапуск nginx, отдающего файл конфигурации JSON

echo '{
  "main.server.proxy":         "socks5://YOUR_LOGIN:YOUR_PASS@YOUR_VPS_IP:1080",
  "fingerprints.server.proxy": "socks5://YOUR_LOGIN:YOUR_PASS@YOUR_VPS_IP:1080",
  "downloads.server.proxy":    "socks5://YOUR_LOGIN:YOUR_PASS@YOUR_VPS_IP:1080"
}' > bas-proxy.json

docker run -d --name bas-config \
  --restart unless-stopped \
  -p 80:80 \
  -v "$PWD/bas-proxy.json":/usr/share/nginx/html/bas-proxy.json:ro \
  nginx:alpine

Итоговая последовательность действий

  1. Арендуйте VPS, который доступен вашим пользователям и который сам имеет доступ к *.bablosoft.com.
  2. Создайте учётные данные для прокси: сгенерируйте YOUR_LOGIN и YOUR_PASS.
  3. Установите прокси-сервер командой, приведённой выше.
  4. Установите сервер конфигурации командой, приведённой выше.
  5. Перекомпилируйте ваш скрипт BAS, установив в «Connection config» значение http://YOUR_VPS_IP/bas-proxy.json.
  6. Распространите новый билд, отправьте его своим пользователям.