Дашборд

Дашборд — это место, где вы открываете и настраиваете прокси-порты, управляете идентичностями и шлюзами, а также запускаете пакетные задачи. Этот обзор проведёт вас по каждой вкладке и каждому диалоговому окну.

Вход в систему

Откройте http://127.0.0.1:8891. Если задан пароль, сначала потребуется войти. Язык интерфейса (английский, русский, китайский) можно переключить в шапке в любой момент.

Экран входа в дашборд BlankTrail Proxy
Экран входа в дашборд.

Вкладка «Обзор»

Вкладка «Обзор» — главная страница дашборда. Вверху карточки показывают открытые порты, ваш лимит портов, общий тайм-аут простоя и число версий браузеров в базе профилей. Ниже — карточка Challenge Breaker с занятыми процессами решателя, строка проверки утечек и таблица всех открытых портов.

Вкладка «Обзор» с карточками статистики и таблицей открытых прокси-портов
Вкладка «Обзор» с несколькими открытыми портами.

В каждой строке показан номер порта (с кнопкой копирования адреса прокси в один клик), протокол, текущая идентичность, режим, фильтр браузера, вышестоящий прокси и активные флаги функций. Нажмите на строку, чтобы развернуть её и изменить настройки этого порта — режим идентичности, браузер и ОС, вышестоящий прокси и цепочку, подмену заголовков/HTTP-2 и таймаут простоя — либо чтобы сменить идентичность, запустить тест, просмотреть профиль или закрыть порт.

  • + Открыть порт — открывает один новый прокси-порт.
  • + Пул портов — открывает пакет портов за один раз.
  • 🔬 Debug-порт — открывает порт, который вдобавок запоминает снимок каждого рукопожатия.
  • Поле поиска фильтрует таблицу по номеру порта; при большом числе портов появляется селектор размера страницы.

Карточка Challenge Breaker

Карточка не только показывает — из неё настраивают размер пула решателя. Ползунок «Процессы Challenge Breaker» с кнопкой «Применить» задаёт, сколько браузерных процессов решателю разрешено держать одновременно; значение применяется без перезапуска и переживает его.

  • Потолок задаётся лицензией. Запрос сверх потолка отвергается ответом 409 — это не сбой, а предел тарифа; сам потолок виден полем js_solver_max_procs в ответе GET /api/v1/license/status.
  • Уменьшать размер пула осмысленно: каждый процесс решателя занимает память и процессор, и на слабой машине меньший пул работает ровнее большого.
  • Если значение не задавать, действует потолок лицензии — выделять процессы вручную не обязательно.
  • Рядом — очередь решателя: сколько задач ждёт и сколько решается прямо сейчас. Это единственное место, где видно, что задачи КОПЯТСЯ, а не решаются.
ПримечаниеЧто решатель делает, когда попадается КАПЧА, а не проверка без участия человека, настраивается только у пула портов: политика captcha_action — «ротировать и повторить» (по умолчанию, до трёх попыток со сменой личности) или «отдать челлендж скрипту». У одиночного порта этой настройки нет.

Открытие порта

Диалог открытия порта начинается с трёх быстрых пресетов, чтобы вы могли приступить к работе в один клик:

  • Браузер — для управления реальным браузером через порт. Он сопоставляет и нормализует собственный отпечаток браузера.
  • HTTP-клиент — для скриптов и HTTP-библиотек. Он назначает и представляет полную, согласованную браузерную идентичность.
  • MTProto — для клиентов Telegram и сервисов, говорящих по MTProto.
Диалог открытия порта с выбранным быстрым пресетом «Браузер»
Диалог открытия порта — пресет «Браузер».

Свободный порт предлагается автоматически — из диапазона 20000–29999. Вы можете выбрать протокол (SOCKS5, HTTP или MTProto), задать вышестоящий прокси или сохранённый шлюз, добавить первый хоп и выбрать способ выбора идентичности. Предварительные проверки позволяют протестировать вышестоящий прокси и обнаружить утечки DNS/IPv6 до того, как порт будет открыт.

Диалог открывается в простом виде: остальное пресет уже заполнил. Переключатель «Расширенные» в шапке диалога показывает каждую настройку — режим выбора идентичности (auto, db, random, specific и custom, то есть импорт отпечатка настоящего браузера), разделы «Сеть и транспорт» (VDNS, свои резолверы, HTTP/3, Force IPv4) и «Дополнительно» (кэш, журнал трафика, параллельность, тайм-ауты, защита от утечек, поведение туннеля), область перехвата и поля MTProto — домен-камуфляж, секрет, режим выхода и ссылку tg:// с QR-кодом после открытия порта. Выбор запоминается и действует также в диалоге пула портов.

Диалог открытия порта с пресетом «HTTP-клиент» и параметрами идентичности
Диалог открытия порта — пресет «HTTP-клиент».

Отладочный порт

Отладочный порт отвечает на вопрос «чем моё соединение выглядит со стороны». Он работает как обычный, но вдобавок запоминает снимок каждого рукопожатия: TLS, ALPN, порядок расширений, параметры HTTP/2. Открывается кнопкой «Debug-порт» на вкладке «Обзор».

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

Приложение, которое не умеет прокси

У отладочного порта два источника трафика. «Через этот порт» — приложение само настроено на него как на обычный прокси. «Забрать у приложения (TUN)» — трафик выбранной программы берётся из системы и заводится во вход этого же порта; настраивать в программе ничего не нужно. Второй путь и есть ответ на самый частый вопрос: «моя программа не умеет прокси — как посмотреть её отпечаток».

  • Область здесь всегда «выбранное приложение»: отпечаток снимают С ПРОГРАММЫ, и выбора «вся система» у отладочного порта нет вовсе.
  • QUIC тоже снимается: его ClientHello читается из первых пакетов, а сами датаграммы идут своим путём, поэтому приложение продолжает работать. В ленте такой отпечаток помечен состоянием quic.
  • Источник TUN опирается на ту же привилегированную службу, что и обычный перехват: если её нет, выбор погашен и форма честно об этом говорит.
  • Размер кольца снимков задаётся при открытии полем debug_capture_n, по умолчанию 500; переполнение вытесняет самые старые.
ПримечаниеОтладочный порт захвата доступен с тарифа Pro: на младшем тарифе открытие такого порта отвергается ответом 403 «the debug fingerprint port requires a Pro license». Проверить свой отпечаток без него можно проверкой порта (POST /api/v1/port/{port}/test) — она сама сходит на внешнюю службу через порт и сверит, что ушло наружу, с тем, чем порт собирался притворяться.

Вкладка «Конфигурации VPN»

Вкладка «Конфигурации VPN» управляет сохранёнными шлюзами: файлами OpenVPN (.ovpn) и подписками, из которых берутся выходы VLESS, VMess, Trojan, Shadowsocks, Hysteria2 и WireGuard. Добавьте шлюз здесь один раз, а затем выбирайте его по имени при открытии портов или построении маршрутов. Обычные прокси SOCKS5 и HTTP шлюзами не становятся: их задают порту полем upstream (или chain_proxy), а узлы SOCKS и HTTP из подписки пропускаются как неподдержанные.

Вкладка «Конфигурации VPN» со списком сохранённых шлюзов OpenVPN и VLESS
Сохранённые шлюзы на вкладке «Конфигурации VPN».

Добавить шлюз можно тремя способами, и первый — самый быстрый: вставить ОДНУ ССЫЛКУ. Понимаются vless://, trojan://, ss://, vmess:// и hysteria2://. Второй способ — файл конфигурации OpenVPN или WireGuard, третий — подписка, которая приносит сразу много серверов.

  • Подписка обновляется по расписанию, и интервал настраивается там же; кнопка обновления рядом перечитывает её немедленно, не дожидаясь срока.
  • У каждого шлюза есть проверка задержки: она показывает, сколько миллисекунд идёт отклик, — прежде чем вешать на шлюз рабочий порт, стоит нажать её.
  • Шлюз можно пустить ЧЕРЕЗ другой шлюз (поле via): так собирается цепочка из двух туннелей.
  • Удалить шлюз, назначенный живому порту, не получится — сначала освободите порт. Так же защищён и шлюз, через который выходит другой.

Вкладка «Пресеты»

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

Вкладка «Пресеты» с деревом папок сохранённых конфигураций портов
Дерево папок «Пресеты».

Вкладка «Маршрутизация по доменам»

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

Вкладка «Маршрутизация по доменам» с открытым редактором правила
Редактирование правила маршрутизации по доменам.

Пул портов

Пул портов (кнопка + Пул портов на вкладке «Обзор») открывает пул портов из списка прокси для крупных параллельных задач. Укажите список прокси (загрузите снимок или укажите путь к файлу), выберите набор устройств и другие параметры, а затем откройте пул. Запущенные пулы отображаются на вкладке «Обзор», где можно наблюдать за прогрессом и останавливать их.

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

Диалог «Пул портов» с источником списка прокси и параметрами устройств
Открытие Пула портов из списка прокси.
ПримечаниеПул портов доступен с тарифа Pro: на однопоточном Lite он не открывается, и попытка возвращает 403 «the scraper port pool requires a Pro license».

Перехват системного трафика и проверка утечек

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

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

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

  • Системный перехват держится только на ОДНОМ порту: второй такой порт открыть не удастся, пока первый жив.
  • Область перехвата задаётся при открытии порта и на живом порту не меняется — закройте и откройте заново.
  • Приложение, которое проверяет сертификат сервера по отпечатку (пиннинг), на перехваченном порту сломается: оно увидит наш сертификат вместо ожидаемого.
  • Приложение, которому прокси уже прописан руками, перехватом не заберётся: оно и так идёт по адресу порта.

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

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

Разрешение имён и защита от утечек

Проверка утечек показывает беду, а эти настройки её закрывают. Главная из них — виртуальный DNS: запрос имени уходит ЧЕРЕЗ тот же туннель, что и сам трафик, поэтому имя цели не попадает в DNS вашей сети и провайдер не видит, куда вы идёте.

НастройкаПо умолчаниюЧто делает
vdns_modeoffoff — имена резолвит система, как обычно; on_leak — виртуальный DNS включается, когда предстартовая проверка нашла утечку; forced — всегда. Виртуальный DNS входит в тарифы Standard и выше: на Lite порт открывается с выключенным vdns.
resolver_strategyautoauto — резолверы подбираются сами; custom — берутся из списка custom_resolvers.
custom_resolvers—Свой список резолверов в виде host:port для стратегии custom.
ecs_enabledtrueПередавать подсеть ВЫХОДА в запросе DNS. Без этого CDN отдаёт географию не того региона, и сайт видит несоответствие адреса и ответа.
vdns_strict_bypassfalseСтрогий обход: наружу уходит только IP-адрес, имя хоста не покидает машину ни при каких условиях. При неудаче резолва соединение не состоится.
leak_guard—Предстартовая проверка утечек DNS и IPv6: off, warn (открыть порт, но предупредить) или enforce (не открывать порт, если течёт).
egress_force_ipv4trueВыходить только по IPv4. Включено по умолчанию: IPv6 — самый частый путь утечки мимо туннеля.
block_private_targetstrueОтказывать в соединениях на частные, локальные и CGNAT-адреса. Включено по умолчанию — иначе прокси становится картой вашей локальной сети для того, кто им пользуется.
require_udp_dnsfalseНе открывать порт вовсе, если выход не доказал, что умеет проносить UDP. Требует vdns_mode on_leak или forced. Без UDP не работают ни виртуальный DNS, ни HTTP/3.
ПримечаниеДва умолчания объясняют самые частые вопросы. «Почему через прокси не открывается мой внутренний сервис?» — block_private_targets включён и не пускает на адреса локальной сети; выключите его для этого порта. «Почему не работает IPv6?» — egress_force_ipv4 включён намеренно.

Все девять настроек задаются при открытии порта (POST /api/v1/ports/open) и меняются на живом порте через PUT /api/v1/port/{port}/config — отдельных ручек у них нет.

Кэш ответов

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

РежимЧто кладётся в кэш
normalОбычный кэш: живёт, пока работает приложение, слушается заголовков ответа и перепроверяет устаревшее.
hardЖёсткий кэш: переживает перезапуск и не перепроверяет ничего. Поэтому изменчивые ответы в него не пускаются вовсе.
hard-mediaЖёсткий кэш только для картинок, шрифтов, аудио и видео.
hard-autowarmЖёсткий кэш, который сам учится: адрес принимается, когда три ответа подряд оказались одинаковыми, то есть содержимое доказало, что оно статическое.
ВниманиеКэш ОБЩИЙ для всех портов: ключ — метод, хост и путь, номера порта в нём нет. Ответы с Set-Cookie, с Cache-Control: no-store или private и всё, что зависит от куки или авторизации, в кэш не попадают вовсе, а у отдаваемых ответов снимаются ETag и Last-Modified — иначе выданный одной личности признак вернулся бы эхом от другой и связал их.

Отдельно настраивается кэширование вопреки заголовку no-cache (cache_ignore_no_cache) и список исключений — домены, которые кэш обходит стороной. Сколько кэш уже сэкономил, видно в ответе GET /api/v1/port/{port}/cache полем saved_bytes.

Журналы: где искать

Журналов два, и они про разное. Журнал приложения отвечает на вопрос «что случилось с продуктом», журнал запросов порта — на вопрос «что именно ушло в сеть».

Журнал приложения

Лежит рядом с приложением, в data/proxy.log, и ротируется по размеру — старое уезжает в proxy.log.1. Подробность меняется на лету: PUT /api/v1/log_level с телом {"level":"debug"} на время разбирательства и обратно на info после. В Linux то же самое видно через journalctl.

Журнал запросов порта

Включается переключателем «Журнал трафика» в диалоге открытия порта — раздел «Дополнительно», он появляется при включённом переключателе «Расширенные», — или ручкой PUT /api/v1/port/{port}/traffic_log. Пишет по строке JSON на каждый запрос — время, метод, хост, путь, код ответа, размер тела и вердикт кэша (попадание, промах, исключено), — в файл data/traffic_port_<порт>.jsonl. Скачивается ручкой /traffic_log/download, очищается DELETE.

ВниманиеЖурнал запросов — это история посещений на диске. Он переживает перезапуск (файл дописывается) и растёт до предела, после которого старые записи вытесняются. Выключение журнала закрывает файл, но не удаляет его.

Настройки

Диалог настроек (шестерёнка в шапке) собирает всё, что относится к самому приложению: пароль дашборда, API-ключ для программных вызовов, доступ к панели из локальной сети, внешний адрес этой машины и требование авторизации на прокси-портах. Внешний адрес нужен только тогда, когда к этой машине ходят из ДРУГОЙ сети: он уезжает в адрес списка отзыва, который стоит в каждом сертификате, выпускаемом прокси. Клиент обязан суметь забрать этот список, иначе Windows откажется соединяться. Задаётся host или host:port (за NAT внешний порт может не совпадать с внутренним), и роутер обязан пробрасывать ПОРТ ПАНЕЛИ — там живёт ручка /crl, — а не только прокси-порт. На адреса, по которым виден сам прокси, это поле не влияет: они складываются из хоста, по которому открыта панель, и номера порта. Ключ настройки называется crl_public_host, и записанный адрес живёт в каждом выпущенном сертификате год. Оставьте поле пустым, если к прокси ходят только с этой машины или из локальной сети.

Диалог настроек с изменением пароля и API-ключом
Диалог настроек с API-ключом.
ВажноОтноситесь к своему API-ключу как к паролю. Любой, у кого он есть и кто имеет доступ к порту дашборда, может управлять вашими портами. Обновите его, если он мог быть раскрыт.

Корневой сертификат

Кнопка «Сертификат CA» в шапке открывает пошаговые инструкции по доверию корневому сертификату на каждой платформе, а также прямые ссылки для скачивания. Установите его на каждом устройстве, которое подключается через прокси, чтобы HTTPS работал без предупреждений.

Диалог установки сертификата CA с инструкциями для каждой платформы
Диалог «Установка сертификата CA».