linux - X11 和远程 DISPLAY 的问题 - 我的世界什么时候改变了?

标签 linux x11

我相当确定我没有疯,但我确实记得过去(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/

相关文章:

c - 如何从 C 中的 X11 窗口获取 Vulkan 上下文?

linux 内核参数 'rootwait' 被忽略

linux - 可以克隆 ViewVC SVN 存储库吗?

linux - 是否有任何快捷方式可以引用 MV 命令中第一个参数的路径?

c++ - 为什么 XGetWindowProperty 返回 null?

c++ - #define 宏和使用相同名称的枚举引起的冲突

linux - 在 shell 脚本中找不到命令

linux - Htop process viewer - 设置列宽

c++ - 剪贴板选择传输不起作用

ssh - 如何使用 X11 转发运行 py-faster-rcnn