隧道时了解 X Windows DISPLAY 环境变量

Sum*_*Tea 9 linux ssh xorg sshd

我想ssh到远程服务器,都运行CentOSX11Forwarding启用。

但是 X 应用程序无法在其中之一上正常运行 - 在主机 B 上它工作正常。但是每次我启动 X 应用程序时,主机 AI 都会收到错误“无法连接到显示器”。

在检查了DISPLAY我认为与 X 窗口相关的主机 A 上的环境变量后,我找到了它的 value localhost:10.0。按照此处的提示,我进行了更改DISPLAY=0:10.0并且可以正常工作。但是,DISPLAY在主机 B 上仍然localhost:10.0可以正常工作。

我的问题是,中的值DISPLAY代表什么?localhost:10.0和 和有0:10.0什么区别?

据说localhost标识一个主机名。然后它识别哪个主机,我的 X 应用程序正在运行的服务器(主机 A/B)或我希望 X 窗口显示的本地客户端?

任何对文档的提示或指针将不胜感激。

Kar*_*son 5

部分答案实际上可以在这里找到:https : //stackoverflow.com/questions/746119/how-do-you-use-display-specifications

DISPLAY 变量基本上是 3 个组成部分:

<host>:<display>[.<screen>]
Run Code Online (Sandbox Code Playgroud)

就 localhost aka 127.0.0.1 与 0.0.0.0 aka 0 而言,您可以看看这篇文章:

https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

这解释了差异。

在您的特定情况下 0.0.0.0:10.0 和 localhost:10.0 将具有相同的效果,但基本上意味着:

  1. 连接到任何设置了显示器 10 的接口上
  2. 在 lo0 上连接到显示器 10 的侦听器。

实际上没有区别,因为在第一种情况下,所有接口的扫描将从 lo0 开始,通常是列表中的第一个接口。