我相当确定我没有疯,但我确实记得过去(80 年代、90 年代)使用 X11 并能够将显示设置到我想要的任何地方。当然,受访问控制的约束。
但是,当我今天在现代操作系统(Ubuntu 11.10 桌面)上尝试它时,我无法让它与远程 X 服务器一起工作。
经过一系列尝试后,我决定确保它甚至可以在我自己的计算机上运行。令人震惊的是,它在本地也不起作用。也就是说:
- “xterm”有效
- “xterm -display :0”和“xterm -display :0.0”也是如此
- 但是“xterm -display my-ip-addr:0”不起作用
- “xterm -display 127.0.0.1:0”也没有
我已经尝试过的事情:
- “xhost +,”(请不要对此发火)
- 设置“DISPLAY=foo”而不是“-display foo”
我了解 ssh 端口转发,但由于多种原因,这不是我正在寻找的解决方案。
我错过了什么?
最佳答案
基于 xhost 的身份验证已经相当过时了。您仍然可以启用它,但 X 身份验证的常用方法是通过包含在 X Authority 文件中的安全 cookie。访问和操作它的工具称为 xauth。诀窍是提取运行 X 服务器的机器上的 xauth 身份验证数据,并将其添加到远程端的 xauth 数据中。
然而,在大多数 Linux 系统上,X 服务器已配置为不接受通过 TCP 的连接(这实际上是有道理的)。此外,纯 X 协议(protocol)不提供 secret 性,因此强烈建议不要直接在网络上使用它。
因此,要实际使用它,您必须启动一个接受 tcp 连接的 X 服务器。您还告诉服务器放置初始 X 权限文件的路径。然后从中提取 xauth 数据并将其合并到远程端的 ~/.Xauthority 中。
关于linux - X11 和远程 DISPLAY 的问题 - 我的世界什么时候改变了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725117/