我已经经历过X11 未通过 SSH 转发($DISPLAY 未设置)和如何通过 SSH 转发 X 来远程运行图形应用程序?我仍然遇到我的问题。
我在本地网络上运行 pi,并且可以通过 ssh 访问它。当我尝试打开远程桌面(x11 转发)时,它失败。我收到错误:
19:21:15.111 Added Remote Desktop forwarding rule on 127.0.0.1:51126 to 127.0.0.1:3389.
19:21:15.132 Remote Desktop Connection opened.
19:21:20.124 Failed to open channel for Remote Desktop forwarding from 127.0.0.1:51127 on 127.0.0.1:51126 to 127.0.0.1:3389. Open failure reason: ConnectFailed, description: Connection refused.
19:21:21.650 Remote Desktop Connection closed.
如果我尝试打开像 Chromium 这样的窗口应用程序,我会从 ssh 窗口收到此错误:Unable to open X display.
以及来自我的 ssh 客户端的此错误:
13:33:18.880 Failed to open channel for X11 forwarding from 127.0.0.1:59484 to 127.0.0.1:6000. Error connecting to X11 server: FlowSocketConnector: Failed to connect to target address. Windows error 10061: No connection could be made because the target machine actively refused it.
答案1
首先,确保服务器端和客户端都启用了X11
这应该可以帮助您确保它已启用如何通过 SSH 转发 X 来远程运行图形应用程序?
如果使用 gui ssh 客户端,您可以通过设置/首选项启用 X11 转发。
此时,您应该能够进行 ssh 并在连接时接受 X11 转发。
但是,由于您使用的是 Windows,因此您需要 X11 服务器
Windows 默认情况下没有安装 X11 服务器。必须首先安装 X11 服务器。
这里有一个按位引导用于安装 cygwin x11 服务器。无论使用什么 ssh 客户端,这都应该有效。
安装服务器后,请确保运行指南中的以下命令,否则防火墙将阻止连接。
C:\cygwin64\bin\XWin -listen tcp -multiwindow
这将允许您使用 X11 转发打开 GUI 应用程序并启用
要启用远程桌面,在我的例子中,我使用的是按位 SSH 客户端,这是他们的指南https://www.bitvise.com/remote-desktop
答案2
您startx
正在尝试启动 X11 服务器,但由于没有连接屏幕而失败。
通过 ssh 连接时,X 服务器位于您自己的计算机上(从 pi 上运行的程序的角度来看,X11 服务器是 ssh,它实际上是将信息传递给您客户端计算机上的真实 X11)。
startx
您应该直接运行您想要运行的任何图形程序,而不是启动。