更改 DISPLAY 值

更改 DISPLAY 值

当我通过 SSH 连接到另一台服务器时,我一直尝试在本地客户端上运行一些图形。以前export DISPLAY=:10允许 xeyes 在我的显示器上运行,但有时它不起作用,需要将显示值更改为:11。我今天尝试了这两种方法,结果都是Error: can't open display。谁能告诉我为什么这种情况一直发生,以及如何修复它?

答案1

DISPLAYSSH X-forwarding 上要设置的 值通常为 10 +(无论本地系统上的值是多少)。因此,如果您本地有DISPLAY=:0,则转发设置将使用DISPLAY=:10,而DISPLAY=:1本地将需要SSH 会话。在本地终端上DISPLAY=:11检查 的值。echo $DISPLAY

而本地的值DISPLAY又取决于您正在运行的 X11 会话的数量(实际上是X11执行时赋予的值,但通常由显示管理器根据当前正在运行的 X11 会话的数量设置)。因此,如果有两个用户登录,其中一个用户可能会有DISPLAY=:0,重用 LightDM 的 X11 会话(假设 LightDM 是显示管理器),另一个用户会有DISPLAY=:1,如果第三个用户也登录到 GUI,他们可能会得到DISPLAY=:2,依此类推。


该值10来自给予 SSH 的偏移量:

$ grep X11DisplayOffset /etc/ssh/sshd_config
X11DisplayOffset 10

相关内容