将 X11 显示转发到 RHEL8/RHEL9 上的 VNC

将 X11 显示转发到 RHEL8/RHEL9 上的 VNC

在以前版本的 RHEL(至少 RHEL5/6/7)上,可以创建运行 vncserver(从 Tigervnc-server)并通过将DISPLAY远程服务器上的环境变量导出到hostname:displayvncserver 的方式从另一台服务器转发 X11 显示。

例如我有workstation1server1、 和server2。我可以从workstation1 ssh 到server1,在:1 上启动vncserver。单独 ssh 到server2并运行export DISPLAY=server1:1。然后在 上运行 X11 应用程序server2,并假设正确的 xhost、防火墙和端口侦听设置,它将出现在 server1 上的 vncserver 中。

我注意到在 RHEL8 和 RHEL9 上情况不再是这样。在 RHEL7 上,当启动 vncserver 时,侦听器会出现在两个单独的端口上。一对5900+显示数量和一对6000+显示数量。在 RHEL8 和 RHEL9 上,侦听器仅出现在 5900 + 显示器上。

根据strace尝试转发xeyes到 vnc 的输出,似乎仍在尝试建立与 6000 + 显示器的连接。为了尝试“欺骗”系统,我在显示器 101 上运行了 vncserver,它在 上的端口 6001 上创建了侦听器server1。然后继续运行export DISPLAY=:1server2尝试运行 xeyes。它确实尝试连接到端口6001,但仍然被拒绝。

Error: Can't open display: server1:1

在 RHEL8 或 RHEL9 上运行 vncserver 时,有什么方法可以启用 X11 侦听器?我知道使用 SSH 转发仍然有效,但我希望能够导出显示并通过网络使用本机 X11 转发。

另外,如果它是相关的。我使用 Plasma 5 作为我的 DE。

答案1

简短回答:添加listen=tcp到配置文件(例如 /etc/tigervnc/vncserver-config-defaults)

我在 TigerVNC git repo 中做了一些挖掘,发现。具体来说是这样的:

我最近了解到一个有效的条目是“listen=tcp”,它使服务器能够在端口 6000 上侦听 TCP 连接

我添加listen=tcp/etc/tigervnc/vncserver-config-defaults重新启动了我的 vncserver。我检查了它是否正在侦听 6000+ 显示端口,确实如此。再次尝试转发 X11 显示,一切正常。

相关内容