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