WSL2 AI 轻松操控 Windows Chrome
别被环境隔离骗了:WSL2 里的 AI,照样能直接控制 Windows Chrome
原作者:猿有味(AtomGit开源社区)
原文链接:https://gitcode.csdn.net/69d0eeb054b52172bc66ee55.html
摘要
代码在 WSL2 中运行,AI agent 也在 WSL2 中,但浏览器使用 Windows 端的 Chrome。核心问题在于浏览器接管环节——许多工具会先去 Linux 环境找 Chrome,导致失败。
推荐方案:
- Windows 手动启动专用调试 Chrome
- 该 Chrome 开启远程调试端口(如
9922) - 使用独立
user-data-dir - WSL2 中的
chrome-devtools-mcp仅通过--browser-url连接
一、确认环境
1. Windows 已安装 Google Chrome
chrome-devtools-mcp 官方明确支持的是 Google Chrome 和 Chrome for Testing,建议统一使用 Google Chrome。
2. WSL2 有可用的 Node.js、npm、npx
要求 Node.js 为 20.19 或更高的维护中 LTS。在 WSL2 中依次执行:
node -v
npm -v
npx -y chrome-devtools-mcp@latest --help
如果报错,先理顺 Node 环境再继续。
3. 确认网络模式:mirrored 还是 NAT
- Mirrored 模式:WSL2 可直接访问
http://127.0.0.1:9922 - NAT 模式:需在 WSL2 中查宿主机 IP:
ip route show | grep -i default | awk '{ print $3 }'
后续地址改为 http://<Windows宿主机IP>:9922
如需切换至 mirrored,在 Windows 用户目录下的 .wslconfig 中写入:
[wsl2]
networkingMode=mirrored
保存后执行 wsl --shutdown 并重新打开 WSL。
二、在 Windows 上启动调试 Chrome
注意:从 Chrome 136 开始,远程调试开关规则收紧——对默认数据目录启用
--remote-debugging-port或--remote-debugging-pipe不会生效。必须同时指定一个非默认的--user-data-dir。
PowerShell:
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--remote-debugging-port=9922 `
--user-data-dir="$env:TEMP\chrome-devtools-mcp-profile"
CMD:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9922 --user-data-dir="%TEMP%\chrome-devtools-mcp-profile"
也可创建 Windows 快捷方式,目标填入上述命令。建议将此 Chrome 实例仅用于 AI 和调试,不与日常浏览混用。
三、先测端口,再配 MCP
浏览器启动后,先在 WSL2 中确认调试端口是否连通。
Mirrored 模式测试:
curl http://127.0.0.1:9922/json/version
NAT 模式测试:
HOST_IP=$(ip route show | grep -i default | awk '{ print $3 }')
curl "http://${HOST_IP}:9922/json/version"
若能返回 JSON 且包含 webSocketDebuggerUrl,说明浏览器准备就绪。若不通,检查:
- Chrome 是否按带参数的命令启动
--user-data-dir是否为非默认目录- 当前是 mirrored 还是 NAT
.wslconfig修改后是否执行过wsl --shutdown
四、配置 chrome-devtools-mcp
AI 客户端支持的标准 MCP JSON 配置格式:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--browser-url=http://127.0.0.1:9922"
]
}
}
}
NAT 模式下地址改为 http://<Windows宿主机IP>:9922。核心参数是 --browser-url,作用是直接连接已启动的 Chrome,而非自行寻找浏览器。
五、配置 Codex
两种方式:直接编辑 ~/.codex/config.toml 或使用 codex mcp add 命令。
直接配置(~/.codex/config.toml):
[mcp_servers.chrome-devtools]
command = "npx"
args = ["-y", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9922"]
命令行添加:
codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9922
执行完后建议检查 ~/.codex/config.toml 确认已写入。
六、验证是否已连通
建议按顺序验证:
-
确认包能运行:
npx -y chrome-devtools-mcp@latest --help -
确认调试端口通畅:
curl http://127.0.0.1:9922/json/version -
重启 Codex 或让 AI 客户端重新加载 MCP 配置。
-
给 AI 一个简单任务,如:
“打开 https://example.com,查看 Console 是否有报错,再检查一下 Network 请求。”
七、常见坑
| 问题 | 排查方向 |
|---|---|
curl 不通 |
Chrome 是否使用 --remote-debugging-port=9922?是否使用非默认 --user-data-dir?网络模式是 mirrored 还是 NAT? |
| Codex 未加载 MCP | ~/.codex/config.toml 路径是否正确?TOML 语法是否出错?修改配置后 Codex 是否重启?npx 是否卡在首次安装确认? |
| 端口不一致 | Windows 启动用 9922,则 WSL2 中的 curl、--browser-url、Codex 的 config.toml 都须写 9922,不能混用 9222。 |
职责划分建议: Windows 负责启动 Chrome,WSL2 负责运行 AI 和 MCP,chrome-devtools-mcp 只负责连接。职责清晰,易于排障。
总结
四件事:
- Windows 手动启动专用 Chrome
- 固定远程调试端口
- 使用非默认
user-data-dir - WSL2 中的 MCP 和 Codex 只负责连接已存在的浏览器
参考资料
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)