1.7 KiB
1.7 KiB
2026-06-12 远程浏览器 — 验证码 / 反自动化优化
摘要
针对阿里云等站点验证码失败:Worker 改为 headed + Xvfb + 反自动化指纹;前端滑块拖动支持窗口级鼠标跟踪与平滑步进。
动机
用户反馈阿里云验证码过不去。根因非 Nexus URL 拦截,而是 headless Chromium 被风控识别,且拖滑块时鼠标移出 canvas 会丢失 move 事件。
涉及文件
| 区域 | 文件 |
|---|---|
| Worker | browser_stealth.py, session_manager.py, config.py, Dockerfile, docker-entrypoint.sh, docker-compose.yml |
| 前端 | useRemoteBrowserSession.ts, GlobalBrowserPanel.vue |
变更要点
- 去掉
--enable-automation,disable-blink-features=AutomationControlled,init script 隐藏navigator.webdriver - 默认
WORKER_HEADLESS=false,容器内 Xvfb:99 - 中文 locale / Asia/Shanghai / 常见 Chrome UA
- Screencast JPEG quality 90
- MOUSE:
down/up先 move 到位;move支持steps;新增click - 前端:mousedown 后
window级 mousemove/mouseup,滑块拖出画面仍有效
部署
# Worker
cd /opt/nexus-browser-worker && docker compose up -d --build
# 前端
cd frontend && npx vite build
# sync_webapp_to_container.sh
Worker .env 可选:WORKER_HEADLESS=false(默认)、WORKER_SCREENCAST_QUALITY=90
验证
- 打开
https://account.aliyun.com或控制台登录页,滑块可拖到底 - 仍失败时:Worker IP 为机房段,阿里云可能加强风控 — 可本机 Chrome 登录后仅浏览公网页,或换住宅 IP Worker
残余限制
- 无法保证 100% 通过所有风控(拼图、短信、设备指纹)
- Cookie 在 Worker Profile,与本机浏览器不共享