You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 12中--remote-debugging-port参数引发ERR_CONNECTION_REFUSED问题求助

问题

我有一个Python项目,通过--remote-debugging-port参数启动Chrome实例,并使用Playwright库连接它。代码如下:

url = "http://localhost:9222/json/version"
subprocess.Popen([CHROME_PATH, f"--remote-debugging-port=9222", url])
websocket_url = get_websocket_debugger_url(url)
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(websocket_url)

该项目在Windows 11上运行正常,但切换到Debian 12后无法正常工作:Chrome实例能启动,但访问http://localhost:9222/json/version时出现ERR_CONNECTION_REFUSED错误。

我尝试在终端执行/opt/google/chrome/google-chrome --remote-debugging-port=9222,添加或不添加--no-sandbox参数结果一致。只有使用sudo执行该命令时才能正常工作。换成Firefox尝试,仍然遇到相同问题。

解决方案

以下是几种可行的解决方向,按优先级尝试:

1. 检查AppArmor限制

Debian 12默认启用AppArmor,可能限制了普通用户下Chrome/Firefox绑定端口或访问本地服务的权限:

  • 临时禁用Chrome的AppArmor规则测试:
    sudo aa-disable /etc/apparmor.d/usr.bin.google-chrome
    
    禁用Firefox的规则则执行:
    sudo aa-disable /etc/apparmor.d/usr.bin.firefox
    
  • 如果测试有效,可修改对应AppArmor规则,允许浏览器绑定指定端口,或根据需求决定是否长期禁用规则(不推荐无必要的禁用)。

2. 指定远程调试绑定地址

显式指定绑定地址为0.0.0.0,确保本地能正常访问调试端口:
Python代码修改为:

subprocess.Popen([CHROME_PATH, "--remote-debugging-port=9222", "--remote-debugging-address=0.0.0.0", url])

终端测试命令改为:

/opt/google/chrome/google-chrome --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0

3. 排查用户代理环境变量

普通用户的代理设置可能导致localhost访问被转发,触发连接拒绝:

  • 检查当前用户的代理环境变量:
    echo $HTTP_PROXY $HTTPS_PROXY $NO_PROXY
    
  • 如果NO_PROXY未包含localhost或127.0.0.1,临时添加后测试:
    export NO_PROXY="localhost,127.0.0.1"
    /opt/google/chrome/google-chrome --remote-debugging-port=9222
    
  • 如需永久生效,将上述export命令添加到用户的~/.bashrc或~/.profile文件中。

4. 使用Playwright内置浏览器

放弃手动启动系统浏览器,改用Playwright自带的二进制文件,它不受系统用户权限配置的影响:

with sync_playwright() as p:
    # 启动内置Chromium并开启远程调试
    browser = p.chromium.launch(args=["--remote-debugging-port=9222"])
    # 后续直接使用browser对象即可,无需额外CDP连接

5. 检查浏览器目录权限

确保普通用户对Chrome/Firefox的安装目录有足够的读写权限:

ls -ld /opt/google/chrome
ls -l /opt/google/chrome/google-chrome

如果权限不足,调整目录权限:

sudo chmod -R 755 /opt/google/chrome

内容的提问来源于stack exchange,提问作者faraamknight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:22:21