# 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,滑块拖出画面仍有效 ## 部署 ```bash # 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,与本机浏览器不共享