使用 xinetd 启动 Xvnc 服务器,并用 vglrun 封装

使用 xinetd 启动 Xvnc 服务器,并用 vglrun 封装

我正在尝试为我们办公室的 CentOS 7 计算机设置远程登录,以便用户可以从 Windows 客户端使用 TigerVNC 进行连接并到达 gdm 登录屏幕。之前我关注过这些说明使用 XDMCP 并且一切都按预期工作:本地网络上的任何人都可以连接到端口 5950 上的服务器,他们将到达可以登录的 gdm 欢迎屏幕。然而,这是使用 nouveau 图形驱动程序,不幸的是我们使用的 CAD 软件需要 nVidia 驱动程序(我们还需要远程使用它)。

安装 nvidia 驱动程序并验证所有内容(gnome、CAD 软件等)似乎在服务器上运行良好后,我发现远程登录不再起作用:与 TigerVNC 连接时出现错误屏幕“哦不!出了问题” 。我相信这是因为 Gnome 需要 3D 加速,而 nVidia 图形驱动程序无法正常工作。所以我尝试了 VirtualGL,发现我现在可以启动 vnc 服务器并使用 vglrun 运行 3D 应用程序:

$ vglrun vncserver 其实,因为这个问题我还必须在命令前面添加 ssh-agent :

$ /usr/bin/ssh-agent vglrun vncserver

vncserver 在 ~/.vnc/xstartup 中有一个启动脚本,我可以对其进行编辑,以便 vglrun 命令在 Xvnc 之前运行,这样用户就可以使用 ssh 连接并启动自己的 vnc 服务器。但为了方便我想使用xinetd,但是我不知道如何配置 xinetd 服务以使用 ssh-agent 和 vglrun 运行 Xvnc。这是我的初始配置,保存到 /etc/xinetd.d/xvncserver: service vnc { disable = no log_type = SYSLOG daemon debug protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1024x768 -depth 24 securitytypes=none # server = /usr/bin/ssh-agent # server_args = vglrun /usr/bin/Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24 securitytypes=none }

上述配置导致 VNC 屏幕上出现“出现错误”错误(可能是因为 gnome 无法启动)。我尝试替换注释行 so server = /usr/bin/ssh-agent,其他所有内容都在 中server_args,但这导致 TigerVNC 客户端无法连接,报告“读取版本失败:不是 RFB 服务器?”。

如何配置我的 xinetd 服务器以使用 vglrun(和 ssh-agent)正确启动 Xvnc?

相关内容