有时候会遇到过这种尴尬:为了性能,代码跑在强悍的远程 Linux 服务器上;但为了调试,又离不开 Windows 下那个配置好了各种插件、登录了各种账号的 Chrome 浏览器,下面就介绍这种linux上开发 连接使用windows浏览器 原理大概这样

第一步:在 Windows 上开启 Chrome 远程调试
首先,Windows 上找到 Chrome 快捷方式,右键属性,在“目标”后面加上参数(或者直接在 PowerShell 运行):
# 关闭所有 Chrome 窗口后运行chrome.exe --remote-debugging-port=9222此时,本地 9222 端口已经准备好接收指令了
然后浏览器输入curl http://localhost:9222/json/version 出现一大串json就成功了
第二步:建立 SSH 反向隧道
在 Windows 的终端(PowerShell/CMD)输入以下指令:
# 格式:ssh -R [远程端口]:[本地地址]:[本地端口] 用户名@IP 例如ssh -R 9222:localhost:9222 your_name@172.20.26.190第三步:在 Linux 上验证连接
登录 Linux 后,先用 curl 测一下桥修通了没:
curl http://localhost:9222/json/version如果看到 JSON 输出, Linux 已经成功“勾搭”上了 Windows 的浏览器
第四步:Playwright 测试
Playwright 代码可以这样写,直接接管 Windows 上的浏览器实例:
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:# 关键:使用 connect_over_cdp 连接 Linux 本地的转发端口 browser = p.chromium.connect_over_cdp("http://localhost:9222") page = browser.new_context().new_page() page.goto("https://github.com")print(page.title())# 可以看到 Windows 屏幕上浏览器在动了!1. 保持后台运行如果你不想一直开着终端窗口,可以加 -f -N 参数,让隧道在后台静默工作:
ssh -f -N -R 9222:localhost:9222 your_name@172.20.26.1902. 自动断线重连网络波动会导致隧道断开,推荐使用 autossh(如果环境允许安装),它会自动检测并重建隧道。
【总结】
--remote-debugging-port=9222。ssh -R 建立反向映射localhost:9222 进行 CDP 连接。