docs: xLightpanda enablejs 软门突破(0.10.5 Accept-CH 回带)—— 灰度现状/根因/灰度操作手册更新
This commit is contained in:
@@ -67,19 +67,22 @@ tail -f /opt/serpmax/data/logs/* # 观察 browser.started_xlightpanda / serp.po
|
||||
|
||||
## 5. 温池灰度现状与遗留问题(2026-11-04)
|
||||
|
||||
**当前舰队状态:三节点温池全部 veil/cloak 兜底(50/50、20/20、40/80),Storage Hook 三节点全启用。** xLightpanda 温池切换保留 `SERP_BROWSER_KIND=xlightpanda` 一键开关,随时可再灰度。
|
||||
**当前舰队状态:OVH-ETH-33 已开 xLightpanda 灰度(0.10.5,`SERP_BROWSER_KIND=xlightpanda`);HZ-DE-245 / OVH-DEDI-KS5B 暂保持 veil/cloak 兜底。三节点 lightpanda 0.10.5 二进制已就位;Storage Hook 三节点全启用。**
|
||||
|
||||
### 已突破
|
||||
- 引擎接入全链路可用:克隆启动、impersonate MITM 链、cookie 桥、入池门槛、44/50 池满、平均 RSS 75MB(veil 同池 ~450MB)。
|
||||
- Google 的 **captcha/sorry 硬门已突破**(0.10.2-0.10.4 头集修复后,首页与 hop1 均 200,不再打 /sorry 网段封)。
|
||||
- 引擎接入全链路可用:克隆启动、impersonate MITM 链、cookie 桥、入池门槛、平均 RSS 75MB(veil 同池 ~450MB)。
|
||||
- Google 的 **captcha/sorry 硬门已突破**(0.10.2-0.10.4 头集修复:UA-CH 三件套含引号、navigation accept 全段、accept-encoding 值序)。
|
||||
- **enablejs/critical-ch 软门已突破(0.10.5,2026-11-04)**:给 impersonate-proxy 加了受控转发头 dump(env 门控 `IMPERSONATE_HEADER_DUMP=<目录>`(+可选 `_FILTER=<url子串>),默认零开销;源码在 /home/bigcode/data/dev/impersonate-proxy,该仓库 deployed-but-uncommitted 状态保持),veil vs xlp 同 Profile 同 IP 同 MITM 抓包对比,锁定门因:
|
||||
- **Accept-CH client hints 全套缺失**。Google 响应声明 accept-ch/critical-ch 后,Chromium 对同源后续请求自动回带全部高熵提示(arch/bitness/full-version(-list)/model/platform-version/wow64/form-factors/prefers-color-scheme/downlink/rtt/ect);xlp 一概不带,Google critical-ch-check 判客户端撒谎 → enablejs 门壳 → hop2 302 /sorry。
|
||||
- 次要差异:accept-language 多了 `,en;q=0.8` 第三段(veil/Chromium 实测 `de-DE,de;q=0.9` 无英文兜底)。
|
||||
- 修复:0.10.5 Client.noteAcceptCh/appendClientHints(Accept-CH 持久化+每跳回带,值取自指纹 ctx 高熵集合)+ accept-language 去兜底。
|
||||
- 验证:ETH-33 xlp 灰度池 pagefetch `ok=true 9 结果 0.9~1.7s`(与 veil 同形);新鲜实例单测通过。
|
||||
- **已知的非引擎限制**:同一实例被连续高频手打搜索(≥7 次)后会在 navigate 回退跳吃 /sorry——频率疲劳,veil 同样如此,非引擎门;温池轮换天然规避。
|
||||
|
||||
### 遗留:SERP 请求仍被 enablejs/302 门拦
|
||||
同 Profile 同 IP 同 MITM 的 A/B:veil pagefetch 1.2s 9 结果;xlp 仍 0 结果。已对齐的差异(全部实测):UA-CH 三件套(含引号)、upgrade-insecure-requests、navigation accept 全段、accept-encoding 值序(gzip 先)。MITM 对两类链路统一重写上游 TLS/H2/头序(fp.Dialer/h2fp 架构确认)。
|
||||
**剩余嫌疑(按优先级)**:
|
||||
1. MITM 转发后的**实际头集/头值**尚未直接观测(httpbin 经代理链 TUNNEL 失败;echo 无法穿越代理回本机)→ 下一步:给 impersonate-proxy 加调试 dump(源码在 /home/bigcode/data/dev/impersonate-proxy),对 veil 与 xlp 各抓一次转发后头逐字段对比。
|
||||
2. xlp 页内 fetch 的 `sec-fetch-*` 组合与 veil 差异(cors/empty vs veil 同值?)——dump 后即知。
|
||||
3. hop2(sei 追加跳)的 cookie 头序/值差异。
|
||||
工具已就绪:节点上一键受控复现脚本(见 /tmp/xlp-node-repro*.ts 模式)、A/B 切换(env 一键)、HAR 级重定向链捕获(playwright response 事件)。
|
||||
### 灰度操作
|
||||
- 开:`node.env` 加 `SERP_BROWSER_KIND=xlightpanda` → `systemctl restart serpmax-node`。
|
||||
- 关:删该行 → 重启,立即回 veil/cloak(Profile 元数据不动)。
|
||||
- 二进制升级:`upstream/zig-out/bin/lightpanda`(ReleaseFast + `-Dtarget=x86_64-linux-gnu.2.36`)→ 节点 `/opt/{serpmax,profilemax}/bin/lightpanda`;先 `sudo pkill -f "lightpanda [s]erve"`(注意 pkill 模式勿自匹配 ssh 命令行,否则 ssh 会话被杀 exit 255)。
|
||||
|
||||
## 6. 后续(不在本轮)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user