You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Xming无法定位SSH.exe,寻求WSL中运行OpenGL程序的解决方案

Xming无法定位SSH.exe,寻求WSL中运行OpenGL程序的解决方案

你遇到的这个问题我之前也碰到过,大概率是Windows的**文件系统重定向(File System Redirection)**在搞鬼——Xming默认是32位程序,它访问C:\Windows\System32时会被系统自动重定向到C:\Windows\SysWOW64目录,而OpenSSH的文件只存放在真正的System32里,所以才会出现“明明文件存在但看不到”的诡异情况。下面给你几个可行的解决思路:

一、解决Xming找不到ssh.exe的直接办法

  • 手动指定Sysnative路径:在Xming的文件选择窗口里,不要手动导航到System32,直接在地址栏输入 C:\Windows\Sysnative\OpenSSH\ssh.exe 就能定位到真正的ssh程序了。这个Sysnative是Windows专门给32位程序留的“后门”,用来绕过重定向访问64位的System32目录。
  • 换成64位版Xming:现在有官方的64位Xming版本,安装后它作为64位程序,就能直接看到C:\Windows\System32\OpenSSH文件夹,不用再绕弯路。

二、更简单的替代方案:用WSL原生X11转发(不用折腾SSH转发)

其实你要在WSL里运行OpenGL程序,完全可以不用通过SSH转发X11,直接用WSL和Windows X服务器的原生连接更省事:

  1. 配置WSL的环境变量:打开WSL的终端,编辑你的shell配置文件(比如~/.bashrc或者~/.zshrc,取决于你用的shell),添加以下两行:
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
    export LIBGL_ALWAYS_INDIRECT=1
    
    保存后执行source ~/.bashrc(或者对应的配置文件)让设置生效。
  2. 正确配置VcXsrv:你之前试过VcXsrv没成功,大概率是没开“Disable access control”。打开XLaunch后:
    • 第一步选“Multiple windows”,点击下一步;
    • 第二步选“Start no client”,点击下一步;
    • 第三步一定要勾选Disable access control,其他保持默认,点击完成启动X服务器。
  3. 运行OpenGL程序:回到WSL终端,直接运行你的OpenGL程序,应该就能在Windows桌面上看到弹出的窗口了。

三、关于where命令找不到ssh.exe的补充

如果你当时用的是32位的PowerShell(这种情况比较少见),同样会碰到文件重定向问题。换成系统默认的64位PowerShell,或者用where C:\Windows\Sysnative\OpenSSH\ssh.exe就能正常找到文件了。

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

火山引擎 最新活动