From 7f477972ba887aece7221fc67224eb6fcd4fb1e7 Mon Sep 17 00:00:00 2001 From: bigcode Date: Wed, 4 Nov 2026 16:11:24 +0800 Subject: [PATCH] =?UTF-8?q?docs:=206.9=20=E6=92=A4=E5=9B=9E=E3=80=8CIP=20?= =?UTF-8?q?=E4=BF=A1=E4=BB=BB=E6=80=81=E5=A1=8C=E9=99=B7=E3=80=8D=E7=BB=93?= =?UTF-8?q?=E8=AE=BA=E2=80=94=E2=80=94=E7=94=A8=E6=88=B7=20cloak=20A/B=20+?= =?UTF-8?q?=20MITM=20=E5=A4=B4=20dump=20=E5=AE=9E=E8=AF=81=E6=A0=B9?= =?UTF-8?q?=E5=9B=A0=E4=B8=BA=20lightpanda=20=E6=AE=8B=E7=BC=BA=20Client?= =?UTF-8?q?=20Hints;=E5=85=A5=E6=A1=A3=E3=80=8C=E5=85=88=20cloak=20?= =?UTF-8?q?=E5=A4=8D=E6=B5=8B=E5=86=8D=E4=B8=8B=E7=BB=93=E8=AE=BA=E3=80=8D?= =?UTF-8?q?=E6=8E=92=E6=9F=A5=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/03_XLIGHTPANDA_ROLLOUT.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/03_XLIGHTPANDA_ROLLOUT.md b/docs/03_XLIGHTPANDA_ROLLOUT.md index a9bd908..2e4be9e 100644 --- a/docs/03_XLIGHTPANDA_ROLLOUT.md +++ b/docs/03_XLIGHTPANDA_ROLLOUT.md @@ -145,8 +145,15 @@ tail -f /opt/serpmax/data/logs/* # 观察 browser.started_xlightpanda / serp.po - admin 侧 `resolveGotoLinks` 无需改动:节点已改写的 HTML 扫到 0 目标,旧解析环(含逐条 fetchViaNode)自然整段跳过。 - 单测 `tests/goto.cache.test.ts` 5 例(键同型/写读回环/脏值防护/三变体改写/零命中不动);bun test 195 全过。 -- **端到端实测(0.49.6 部署后)**:typed 手动跟随机制逐次触发(journal `pool_typed_302_follow`),信任态正常的会话 2/3 organic(9/10 结果,11-15s);随后 ETH-33 整机一度过载(15:02 admin UI 侧 reboot),回填后 **HZ/ETH 两节点全部会话被 Google 持续 302+enablejs 壳**(XHR 与 document 双类全弹)—— 与 §7.2 的 IP 会话配额规律一致:今日全天 typed 探针风暴 + 64 深池 + 复活风暴把三 IP 的信任态打穿,**属外部门态,非代码问题;停探针等 IP 冷却**(恢复判据:pagefetch 重回 0.9~1.7s organic)。 -- ETH-33 dump 窗口(调试用)`IMPERSONATE_HEADER_DUMP=/tmp/hdump3` 经 systemd drop-in 仍开着(机器重启 /tmp 已清空重写);排查关闭:`rm /etc/systemd/system/serpmax-node.service.d/dump.conf && systemctl daemon-reload && systemctl restart serpmax-node`。 +- **端到端实测(0.49.6 部署后)**:typed 手动跟随机制逐次触发(journal `pool_typed_302_follow`),信任态正常的会话 2/3 organic(9/10 结果,11-15s);随后 ETH-33 整机一度过载(15:02 admin UI 侧 reboot),回填后 ETH/HZ 会话出现持续 302+enablejs 壳。 +- **~~「舰队级 IP 信任态塌陷」结论已撤回(2026-11-04 晚)**:用户用同一批指纹 ID(ETH 13594328/2302407/2302770/2303411/2305556/2305846/2306594/38879162/67196721,HZ 32955298/77526684)走正常指纹浏览器(cloak)手工复测,**全部干净无 302/enablejs**。复探针亦证:cloak 同 Profile 走**同一条 impersonate 链**(uTLS+h2fp)typed GET → 200 organic。门态非 IP 级、非 TLS/h2 级。 +- **真根因(MITM 头 dump 实证,`IMPERSONATE_HEADER_DUMP=/tmp/hdump3`)**:lightpanda 引擎**自造的 Client Hints 残缺**,Google document 门态对残缺 CH 的 typed 导航下发 302。cloak(真 Chromium 内核生成 CH)干净 vs xlp 池被门,同为 typed(sec-fetch-site:none、无 referer)、同链路: + - `sec-ch-ua`:cloak `"Not-A.Brand";v="24",…`(Chrome 标准 grease)vs xlp `"Not/A)Brand";v="8",…`(lightpanda 自造 grease v8); + - cloak 有 `sec-ch-ua-full-version-list`(146.0.7680.177)/`sec-ch-ua-model`/`sec-ch-ua-wow64`/`sec-ch-ua-bitness`,**xlp 全缺**; + - `downlink`/`rtt`:cloak 0.4/450(真实感)vs xlp 10/50(满分值)。 +- **修复方向**:在 impersonate-proxy rewriter(或 xlp 启动参数)对 google document 导航**覆写 Client Hints** 为与 UA 一致的完整 CH(grease 用 Not-A.Brand v24、补 full-version-list/model/wow64/bitness),对齐 cloak 实测值;修后用 pinned 搜索(`/api/serp/html/search?node=…&runtime=browser`)A/B 验证 302 消失。 +- **排查流程规则(用户定稿)**:xlp 调试中出现 302/门态时,**必须先用正常指纹浏览器(同 Profile)复测一次再下结论**——否则会把 xlp 特有的请求层缺陷误判为 IP/外部门态,导致修复方向偏差(本轮实证)。 +- ETH-33 dump 窗口(调试用)`IMPERSONATE_HEADER_DUMP=/tmp/hdump3` 经 systemd drop-in 仍开着(机器重启 /tmp 已清空重写;**注意 dumpRequest 不建目录,重启后需 `mkdir -p /tmp/hdump3`**);排查关闭:`rm /etc/systemd/system/serpmax-node.service.d/dump.conf && systemctl daemon-reload && systemctl restart serpmax-node`。 ## 7. 极限压测 + 全节点温池化(2026-11-04,node 0.48.0 / admin 1.80.0)