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

Windows 10通过SSH进行X11转发时无法打开显示器(已开启X11Forwarding)

Windows 10通过SSH进行X11转发时无法打开显示器(已开启X11Forwarding)

看起来你遇到的是Windows 10通过SSH X11转发连接树莓派时,无法将GUI程序显示到本地X Server的问题。结合你提供的日志和环境信息,我来帮你一步步排查解决:

核心问题分析

从日志里的connect /tmp/.X11-unix/X0: No such file or directory和Error: Can't open display: pi4:10.0能看出两个关键问题:

  • 树莓派端的X11转发请求错误地试图连接本地的X Socket(这是VNC用的本地X Server),而非通过SSH隧道转发到Windows端的Cygwin X Server;
  • X11UseLocalhost no的设置让DISPLAY变量用了树莓派的主机名,Windows端的X Server无法直接解析这个地址建立连接。

解决方案步骤

1. 调整树莓派的sshd配置

先修正X11转发的localhost设置,确保请求走SSH隧道:

  • 编辑sshd配置文件:sudo nano /etc/ssh/sshd_config
  • 找到X11UseLocalhost行,修改为:
    X11UseLocalhost yes
    
    (之前设为no会让DISPLAY使用主机名,而非localhost,导致无法通过SSH隧道转发到Windows)
  • 重启sshd服务生效:sudo systemctl restart sshd

2. 安装树莓派的xauth工具

日志里提示No xauth program,这会导致X11转发用伪造认证数据,可能引发权限问题:

  • 安装xauth:sudo apt update && sudo apt install xauth

3. 正确配置Windows端的Cygwin X Server

  • 确保Cygwin X Server处于运行状态,启动时可以添加-ac参数关闭访问控制(测试阶段用,后续可调整安全设置):
    打开Cygwin终端,执行:startxwin -- -ac
  • 如果已经启动了X Server,也可以在Cygwin终端执行xhost +,允许所有主机的X11请求连接(测试用,之后可限制为localhost)

4. 重新连接并验证

  • 在Windows的PowerShell或命令提示符里,用ssh pi4 -Y -v重新连接树莓派
  • 连接成功后,先检查DISPLAY变量:
    echo $DISPLAY
    
    正常应该输出类似localhost:10.0(以localhost开头,而非pi4)
  • 现在执行xclock,应该能在Windows端看到时钟窗口了

额外说明

你之前在树莓派上执行xhost +报错,是因为当时DISPLAY指向的是SSH转发的pi4:10.0,而非树莓派本地的X Server(VNC用的是:0.0)。如果要操作树莓派本地X Server的权限,需要先执行export DISPLAY=:0.0再运行xhost +,但这和SSH X11转发无关,不用额外处理。

备注:内容来源于stack exchange,提问作者ageis23

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 16:08:13