我遇到了这个问题,我不知道为什么。有很多相关的问题,但没有一个对我有帮助。
我有两个虚拟机:
CentOS 7 with GNOME 192.168.1.53
Mint 17.1 Rebbeca with XFCE 192.168.1.54
我知道默认情况下导出显示应该是直接的,例如:
#While I am Logged in on the desktop on the MINT:
user@mint:~$ xhost +
#I am SSHing to the Centos from the MINT
user@mint:~$ ssh -XY [email protected]
#At the CentOS I export the display
[root@cent ~]$ export DISPLAY=192.168.1.54:0.0
[root@cent ~]$ echo $DISPLAY
192.168.1.54:0.0
#Trying to start a simple program but I get an error message instead:
[root@cent ~]$ xclock
Error: Can't open display: 192.168.1.54:0.0
我做错了什么?
我尝试了多个论坛上的建议,但仍然收到错误消息。我还尝试将显示内容从 Mint 导出到 Centos(相反的方式),但仍然收到相同的错误,但这次是在 Mint 上。
难道这个错误是因为一个系统有 XFCE 而另一个系统有 GNOME?
我认为可能有一些默认安全设置对我不知道的一个/两个发行版有效。
/etc/gdm/custom.conf
我还尝试在 CentOS 上进行编辑,如下所述:
http://www.softpanorama.org/Xwindows/Troubleshooting/can_not_open_display.shtml
答案1
您尝试通过 SSH 创建 X 隧道,然后通过指定绕过 SSH 隧道的 IP 地址来覆盖它。这是行不通的。当 SSH 隧道时,SSH 通过在其所通信的每台计算机上的本地主机上打开一个端口来处理本地和远程 IP 地址之间的数据传输。您无需指定任意一台计算机的 IP 地址。
您需要导出通过 SSH 隧道传输的显示,这意味着export DISPLAY=localhost:x.y
,当您使用 ssh -X 连接时,这应该已自动为您完成。
答案2
您是否尝试使用 SSH 进行转发?看来您正在尝试在这里混合+匹配两种方法。一种用于通过 SSH 进行转发,但不用于 ssh。
如果您想通过 SSH 转发,您只需在客户端上执行以下操作即可ssh -X remotehost
。连接后,您不需要在服务器上的会话中执行任何操作。不需要 xhost 或导出。
我确实想知道的一件事是您的 SSH 服务器是否正确设置了 X11 转发。该选项默认情况下并不总是打开。查看您的 sshd_configX11Forwarding
设置。