我想在远程 Linux 系统上运行 GUI 应用程序(例如 xclock),并在本地 Windows 10 系统上查看它。
挂起几分钟后,它会显示一条错误消息:
错误:无法打开显示:<win_ip_or_localhost>:0.0。
我配置的情况如下: X11服务器在windows上成功安装使用VCXSRV软件。默认设置Display number
为0.0
,它始终与 Linux 上的环境变量相同DISPLAY=<win_ip_or_localhot>:0.0
。剩下的VCXSRV配置保持不变。而/etc/ssh/sshd_config
linux中的变量设置如下(默认如下):
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
“/etc/ssh/ssh_config”文件中的变量设置如下:
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
然后我保存了上面的文件并退出。
在 Linux 终端中,我运行dpkg -l | grep xserver-xorg-core
,并得到以下输出:
ii xserver-xorg-core 2:1.20.13-1ubuntu1~20.04.3 amd64 Xorg X server - core server
ssh -XY <host>@<remote_linux_ip>
最后,我在本地计算机上通过X11转发登录到linux服务器git-bash,然后运行xclock
,挂了几分钟没有反应,然后出现上述错误。
我的尝试
我已尽力通过尝试以下方法来解决此问题:
更改端口号,更改linux中“~/.bashrc”中的环境“DISPLAY”值,
export DISPLAY="<my_win_ip>:13.0"
. vcxsrv 软件还将“显示编号”更改为相同的 13.0 以接受客户端请求。或者修改为export DISPLAY="localhost:13.0"
,此时没有hang wait直接报上面的错误。添加 ssh 本地端口映射,
ssh -XYL <my_win_ip>:6000:<remote_linux_ip>:6000 <host>@<remote_linux_ip>
在git-bash
windows 上执行,其中端口号 6000 对应的“显示编号”是固有偏移量 0。同理,其他数字也应添加为偏移量。关闭防火墙,Linux和windows防火墙都已确定关闭,然后执行上述方法步骤。
此外,我还尝试了mobaXterm
终端工具来尝试一下,因为自带了X-Server,不需要安装vcxsrv软件或者Xming等。使用时mobaXterm
,我事先退出了vcxsrv软件,显示的端口号与服务器相同,但是登录后linux 服务器,它仍然挂起一段时间。然后报告同样的错误。
您的回答将不胜感激。