![了解隧道时的 X Windows DISPLAY 环境变量](https://linux22.com/image/1298836/%E4%BA%86%E8%A7%A3%E9%9A%A7%E9%81%93%E6%97%B6%E7%9A%84%20X%20Windows%20DISPLAY%20%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.png)
我想要通过 ssh 连接到远程服务器,两个服务器均已启用CentOS
并运行X11Forwarding
。
但是 X 应用程序无法在其中一个主机上正常运行 - 在主机 B 上它可以正常工作。但在主机 AI 上,每次启动 X 应用程序时都会出现“无法连接到显示器”的错误。
在检查DISPLAY
主机 A 上的环境变量(我认为该变量与 X window 有关)后,我找到了它的值localhost:10.0
。按照提示这里,我更改了DISPLAY=0:10.0
,它工作正常。但是,DISPLAY
在主机 B 上仍然localhost:10.0
工作正常。
我的问题是, 中的值代表什么?和DISPLAY
之间有什么区别?localhost:10.0
0:10.0
据说它localhost
标识一个主机名。那么它标识哪个主机,是运行我的 X 应用程序的服务器(主机 A/B)还是我希望显示 X 窗口的本地客户端?
如能提供任何提示或文档指针,我们将不胜感激。
答案1
部分答案实际上可以在这里找到:https://stackoverflow.com/questions/746119/how-do-you-use-display-specifications
DISPLAY 变量基本上由 3 个部分组成:
<host>:<display>[.<screen>]
就 localhost 又名 127.0.0.1 与 0.0.0.0 又名 0 而言,您可以看看这篇文章:
这也解释了其中的差异。
在您的特定情况下,0.0.0.0:10.0 和 localhost:10.0 会产生相同的效果,但基本含义是:
- 连接到任何设置了显示 10 的接口
- 在 lo0 上连接到显示器 10 的监听器。
实际上没有区别,因为在第一种情况下,所有接口的扫描都将从 lo0 开始,而 lo0 通常是列表中的第一个接口。