修复 Linux 上的“无法打开显示”错误
尝试打开 GUI 应用程序时,尤其是从命令行打开它时,Linux 系统上可能会出现“无法打开显示”错误。如果您尝试通过 SSH 使用 X11 转发到远程系统,它也可能会弹出。好消息是,无论您是在访问本地应用程序还是远程服务器时遇到此错误,修复起来都相对容易。在本教程中,我们将介绍修复 Linux 上的无法打开显示
错误所需的步骤。
在本教程中您将学习:
如何检查
DISPLAY
变量如何设置
DISPLAY
变量如何在 SSH 中启用 X 转发
注意
测试系统是否正确配置 DISPLAY 变量的一个好方法是执行 xeyes
。这个小程序默认存在于大多数 Linux 发行版中,是测试显示问题的快速且方便的方法。
修复 Linux 上的“无法打开显示”错误
当收到
Cannot Open Display
错误时,您应该检查的第一件事是DISPLAY
变量的值,并验证它是否已设置。$ echo DISPLAY
如果此命令没有显示输出或给出错误,则说明您的变量尚未设置或设置不正确。
要设置 DISPLAY 变量,我们将使用以下命令:
$ export DISPLAY=:0
请注意,您的 DISPLAY 值可能需要不同,例如
:0.0
。这取决于您的系统和配置。设置完成后,再次检查以确保您的变量现在设置正确,然后尝试打开xeyes
来验证修复情况:$ echo DISPLAY $ xeyes
如果您尝试从远程服务器运行基于 GUI 的应用程序,则需要确保您的 SSH 连接已启用 X11 转发。尝试断开与会话的连接,然后重新连接时,在 SSH 登录命令中使用
-X
选项:$ ssh -X username@remote-server
或者,尝试使用其他应用程序共享桌面屏幕,例如 X11vnc。
如果您仍然无法通过 SSH 使用 X11 转发,请确保服务器在 sshd 配置文件中启用了 X11 转发:
$ grep X11Forwarding /etc/ssh/sshd_config
如果启用的话,该行将如下所示:
X11Forwarding yes
接下来要检查的是主机是否具有使用 X11 转发的适当权限。我们可以通过在服务器上执行 xhost 命令来做到这一点。使用以下命令禁用访问控制并允许所有主机使用 X11 转发。然后尝试再次连接并打开 GUI 应用程序 – 这将告诉您是否是权限问题。
$ xhost + access control disabled, clients can connect from any host
结束语
在本教程中,我们了解了如何修复 Linux 系统上的无法打开显示
错误。这是一个常见问题,通常是由错误配置的 DISPLAY 变量或 X11 转发设置问题(如果使用 SSH)引起的。幸运的是,这里的步骤使它成为一个非常简单的修复,并且应该让基于 GUI 的应用程序立即重新运行。