我在 Windows 上安装了 VcXsrv,然后运行
ssh -NfXY -t -o ServerAliveInterval=30 -L 2121:PCNAME:21 -L 2020:PCNAME:20 -L 2222:PCNAME:22 USERNAME@SERVER
通过大学服务器建立隧道连接到我的工作站。
我可以xeyes
在本地 WSL bash 中运行,但它会
xeyes
失败,Error: Can't open display: 0.0
并且如果我将 DISPLAY 设置为localhost:0.0
例如
[local WSL]> echo $DISPLAY
:0
[local WSL]> xeyes
"runs"
[local WSL]> ssh -NfXY -t -o ServerAliveInterval=30 -L 2121:PCNAME:21 -L 2020:PCNAME:20 -L 2222:PCNAME:22 USERNAME@SERVER
[workstation]> export DISPLAY=localhost:0.0
Error: Can't open display: localhost:0.0
[workstation]> export DISPLAY=:0.0
[workstation]> xeyes
"hangs with no output"
有人可以帮忙吗?
localhost:11.0
编辑:我可以在工作站上使用另一台电脑顺利运行它。如果我xeyes
从原来的电脑运行localhost:11.0
,它会使用另一台电脑!
答案1
第一的,您需要ForwardX11
在客户端上启用并X11Forwarding
在 中的远程主机上/etc/ssh/sshd_config
。
然后尝试没有DISPLAY
首先在工作站/远程机器上进行调整。只有DISPLAY
在确保其他所有设置都正确无误后才设置变量。您不必设置它,但这是可能的。
我相信该命令“永远挂起”,因为它显示在远程机器上(您可能看不到)。
有时简化事情并尝试一次解决一个问题是件好事。您是否尝试过放弃端口转发和其他一切,并专注于在简单设置中让 X11 转发正常工作?
概括ForwardX11
:在客户端上启用 Asker并DISPLAY=localhost:0.0
仅在初次尝试后设置
connect /tmp/.X11-unix/X0: Connection refused Error: Can't open display: localhost:13.0