Windows 的 X11 问题

  • 1188 字
  • 次阅读

其实就是被坑了,网上搜的大部分教程都是 Linux 的,虽然报错都是 Gtk-WARNING **: cannot open display: ,但实际Win 的 X11 的显示需要本地软件支持,而实际 Win 的 ssh 自身不支持 X11(ssh 自身都不支持),MobaXterm 自身集成了所以支持,putty 这种虽然有 X11 设置,但他自身并不直接支持,你需要装个 Xming 。vcxsrv

目前还没细想 Linux 的 ssh 是不是自身就支持。(不是)

powershell里跑,跑一次就行,这个是添加个人的环境变量

1
setx DISPLAY localhost:0

vcxsrv 中 XLaunch 负责配置以及调用 vcxsrv(Xming 其实也差不多,不过 Xming 有个图标给你直接跑),可以把 XLaunch 生成的配置放到启动文件夹里配置开机运行

不过 vcxsrv 开机会开两个 cmd 窗口。(所以我最后又换回 xming 了)

下面是 vcxsrv 被 XLaunch 调用的启动命令(display number -1)

1
"C:\Program Files\VcXsrv\vcxsrv.exe" -multiwindow -clipboard -wgl -ac -displayfd 444

注意事项

  1. Xming GPL 版本其实很久没维护了,最新版本应该是要付费获取
  2. vcxsrv 2024才开始的一个项目,不过我用的话就是感觉每次开都弹两 cmd 窗口比较蛋疼
  3. X11 的本地才是服务器端,远端是客户端,客户端连上服务器端在服务器端显示界面
    3. 另外需要注意就是默认的 Windows 下面会一直报X11 forwarding requested but DISPLAY not set,正常应该是 ssh 向远程请求 X11 转发,然后远程的 sshd 配置环境变量。(测试 Linux 跟 MobaXterm 都正常)(上面那个环境变量要设)

我甚至试了两个不同的远端 Linux 系统证明不是 Ubuntu 的问题

比较坑的就是手动设个 export DISPLAY=localhost:10 之后就可以了。查询 OSX 好像也有类似的问题。你可以尝试写到 .bashrc 里,我没这么做,因为没找到 root cause

可能跟兼容性有关吧。

另外测试 putty 是OK的(可以不用 Win 端加环境变量就可以用),只要勾上 Enable X11 fowarding 就可以了


今天又发现 Xming 必须用管理员权限运行,否则会不行,但印象里之前不用。(不加环境变量的话)
vcxsrv 则突然没法用了(其实现在的疑问是为什么之前Linux里设环境变量就能用)

打赏
打赏提示信息
分享
分享提示信息