控制面板

控制面板是您打开和配置代理端口、管理身份与网关以及运行批量任务的地方。本导览将逐一介绍每个标签页和对话框。

登录

打开 http://127.0.0.1:8891。如果已设置密码,您需要先登录。您可以随时从页眉切换界面语言(英语、俄语、中文)。

BlankTrail Proxy 控制面板登录界面
控制面板登录界面。

概览标签页

“概览”标签页是控制面板的主页。顶部卡片显示已开启端口、端口上限、共用的空闲超时以及配置文件库中的浏览器版本数量。其下依次是显示解题器占用进程的 Challenge Breaker 卡片、泄漏检查行,以及所有已开启端口的表格。

概览标签页,显示统计卡片和已打开代理端口的表格
概览标签页,其中有若干已打开的端口。

每一行显示端口号(附带一键复制代理地址的按钮)、协议、当前身份、模式、浏览器过滤器、上游代理以及已启用的功能标记。点击某一行可将其展开并编辑该端口的设置——身份模式、浏览器与操作系统、上游代理与链路、标头/HTTP-2 伪装以及空闲超时——或者轮换身份、运行测试、查看配置文件或关闭端口。

  • + 打开端口 — 打开一个新的代理端口。
  • + 端口池 — 一次性打开一批端口。
  • 🔬 调试端口——开启一个额外保存每次握手采样的端口。
  • 搜索框可按端口号过滤表格;当端口数量较多时会出现页面大小选择器。

Challenge Breaker 卡片

该卡片不只是展示——解题池的规模就在这里设置。“Challenge Breaker 进程”滑块与“应用”按钮决定解题器最多可同时持有多少个浏览器进程;该值无需重启即可生效,并可跨重启保留。

  • 上限由许可决定。请求超过上限会返回 409——这不是故障,而是套餐限制;上限本身可在 GET /api/v1/license/status 的响应中通过 js_solver_max_procs 查看。
  • 缩小解题池是有意义的:每个解题进程都会占用内存与 CPU,在配置较弱的机器上,较小的池反而更稳定。
  • 若不设置该值,则按许可上限执行——无需手动分配进程。
  • 旁边是解题队列:有多少任务在等待、有多少正在求解。这是唯一能看出任务在堆积而非被解决的地方。
注意解题器在遇到验证码(而非无人值守型验证)时的行为只能在端口池中设置:captcha_action 策略——“轮换并重试”(默认,最多三次并更换身份)或“把验证交回脚本”。单个端口没有该设置。

打开端口

开启端口的对话框以三个快捷预设开始,让您一键上手:

  • 浏览器 — 用于通过该端口驱动真实浏览器。它会匹配并规范化浏览器自身的指纹。
  • HTTP 客户端 — 用于脚本和 HTTP 库。它会分配并呈现一个完整、连贯的浏览器身份。
  • MTProto——面向 Telegram 客户端及使用 MTProto 的服务。
打开端口对话框,已选择浏览器快速启动预设
打开端口对话框 — 浏览器预设。

系统会自动建议一个空闲端口——取自 20000–29999 区间。您可以选择协议(SOCKS5、HTTP 或 MTProto)、设置上游代理或已保存的网关、添加第一跳,并选择身份的选取方式。开启端口前,预检可测试上游并检测 DNS/IPv6 泄漏。

对话框以简易形式打开:其余设置预设已经填好。标题栏中的“高级”开关会显示全部设置——身份的选取方式(auto、db、random、specific 以及 custom,即导入真实浏览器的指纹)、“网络与传输”(VDNS、自定义解析器、HTTP/3、强制 IPv4)与“高级”(缓存、流量日志、并发、超时、泄漏防护、隧道行为)两个分区、拦截范围,以及 MTProto 字段——伪装域名、密钥、出口模式,以及端口打开后的 tg:// 链接和二维码。该选择会被记住,并同样作用于端口池对话框。

打开端口对话框,显示 HTTP 客户端预设和身份选项
打开端口对话框 — HTTP 客户端预设。

调试端口

调试端口回答“我的连接在外部看来是什么样”。它与普通端口一样工作,但会额外保存每次握手的采样:TLS、ALPN、扩展顺序、HTTP/2 参数。在“概览”标签页点击“调试端口”按钮即可开启。

开启调试端口。
开启调试端口。
  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”。

系统流量拦截与泄漏检查

并非所有应用都能通过代理:有的完全没有相关设置,有的声称支持但仍会把部分流量发到代理之外。拦截解决前者,泄漏检查揭示后者。

警告拦截有两种范围,默认选择的是“整个系统”:端口会接管整台机器的流量,包括您对它的远程控制。若只想引导选定的程序,请把范围切换为“选定的应用”,并在列表中指定它们。

拦截在端口上启用,应用无需任何配置:配置文件对它的作用与对主动走代理的应用完全相同。

  • 系统级拦截只能存在于一个端口上:在第一个端口仍在运行时,无法再打开第二个这样的端口。
  • 拦截范围在打开端口时设定,端口运行期间不可更改——请关闭后重新打开。
  • 对服务器证书做固定校验(pinning)的应用在被拦截的端口上会失效:它看到的是我们的证书,而非预期的证书。
  • 已手动配置代理的应用不会被拦截接管:它本来就直接连接端口地址。

泄漏检查会观察选定的程序,并记录它们绕过所属端口发送的一切。这类流量按定义就是泄漏:配置文件对它无效。观察——流量照常通过,事件被记录;阻断——绕过端口的流量会被切断。

注意拦截与泄漏检查在 Windows 上可用,并依赖安装程序注册的服务。在其他系统上,卡片会明确说明该机制不可用,而不是默默什么都不做。

名称解析与泄漏防护

泄漏检查揭示问题,而这些设置用于消除它。其中最重要的是虚拟 DNS:域名解析请求经由与流量相同的隧道发出,因此目标名称不会进入您所在网络的 DNS,运营商也看不到您访问了哪里。

设置默认值作用
vdns_modeoffoff——按常规由系统解析名称;on_leak——启动前检查发现泄漏时启用虚拟 DNS;forced——始终启用。虚拟 DNS 属于 Standard 及以上套餐:在 Lite 上端口以关闭 vdns 的状态打开。
resolver_strategyautoauto——自动选择解析器;custom——使用 custom_resolvers 列表中的解析器。
custom_resolvers—custom 策略下自定义的解析器列表,格式为 host:port。
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 的响应,以及任何依赖 Cookie 或鉴权的内容都不会被收录;返回时还会剥离 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 证书对话框。