【问题标题】:How to enable "-listen TCP" in Xvnc on Red Hat 8.4如何在 Red Hat 8.4 上的 Xvnc 中启用“-listen TCP”
【发布时间】:2021-09-14 18:49:03
【问题描述】:

默认情况下,旧版本的 Xvnc 会在 6000+ 端口上侦听来自 x-windows 客户端的连接。可以通过“-nolisten TCP”命令行选项禁用此功能。反过来,GNOME 桌面管理器通过 /etc/gdm/custom.conf 中的“DisallowTCP”设置控制此选项。

最近,“-nolisten TCP”是默认行为,必须使用“-listen TCP”显式启用侦听端口 6000+。 GNOME 桌面管理器应该足够聪明,可以知道“DisallowTCP=false”等同于“-listen TCP”,但在 RHEL 8.4 中,这似乎不起作用。

有没有人找到在 RHEL 8.4 上启用监听 6000+ 端口的方法?

【问题讨论】:

  • redhat 文档中有很长的chapter 使用 VNC 进行远程访问,但它使用不同的端口号。
  • 是的。 VNC 客户端使用 VNC 端口 (5900+) 连接到 VNC 服务器。这是显示技术的一个不同组成部分,而且一切都按预期工作。这里的问题是基于 Xwindows 的应用程序用于连接到 VNC 服务器的 Xwindows 服务器组件的 TCP 端口。这部分似乎不像 RHEL 8.4 中记录的那样工作。
  • 这是我真正的问题:我有一个从另一台机器上的 cron 运行的脚本。该脚本打开到我的机器的 SSH 连接,然后启动需要 X-windows DISPLAY 的应用程序。源机器没有 X-windows 显示器,所以我不能使用 'ssh -X'。目标机器在显示“:1”上运行 Xvnc。如果我导出“DISPLAY=:1”、“DISPLAY=unix/:1”或“DISPLAY=localhost:1”,然后运行应用程序,它总是会失败并显示“无法打开显示”。也许有一种方法可以强制应用程序使用 unix 域套接字而不是 TCP 套接字?

标签: redhat x11 vnc gdm


【解决方案1】:

因此,我的问题的“正确”解决方案是让应用程序/xwin 库自己找出用于连接到本地 xwindows 服务器的最佳机制。缺少的部分是 xwindows 服务器必须允许来自不受其控制的进程(即由 GNOME 桌面启动的进程)的连接。

我解决的问题如下:

  1. 在用户的~/.vnc/xstartup 文件中,添加命令'xhost +'
  2. 重新启动 vncserver 服务以获取更改。
  3. 当远程进程通过 SSH 连接时,在运行 xwin 应用程序之前,设置显示环境变量而不指定主机:'export DISPLAY=':1'。

在不使用 TCP 的情况下解决了问题。

我仍然认为这是一个 Red Hat/GNOME 错误,但至少我可以解决它来解决我真正的问题。

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2014-03-17
    • 1970-01-01
    相关资源
    最近更新 更多