VNC 应用程序/终端服务器

VNC 应用程序/终端服务器

如果我想设置一个以这种方式工作的 Linux VNC 终端服务器,我应该使用哪个软件:

VNC 服务器应该能够在同一端口 5900 上接受最多 X 个同时连接。VNC 服务器应该使用 640x480 的 8 位或 16 位颜色。

当 VNC 服务器收到连接时,它应该为用户启动一个新的“会话”,并为该用户自动启动特定的 Linux 应用程序。如果应用程序被终止、崩溃或以任何方式退出,则应断开(踢出)用户与服务器的连接。如果用户断开连接,则应以“优雅的方式”终止应用程序,以允许应用程序进行清理。

(应该没有办法“恢复”旧会话)

有任何想法吗?

答案1

您最好使用 NX。它就像 vnc,但经过了优化,因此速度更快,屏幕上显示更流畅。它也更容易为您的用户准备配置文件。

您可以设置 NX,使其不允许用户重新连接到已打开的会话:

DISABLE_PERSISENT_SESSION

在 /etc/nxserver/node.conf 文件中。

您还可以在 NX 客户端配置中设置登录时要启动的命令。您可能可以在服务器配置中执行此操作,但我从未深入研究过。无论如何,我强烈建议您查看 NX。它在 centos extra 存储库和其他主要 Linux 发行版中可用。它基于部分开源的商业产品的工作。www.nomachine.com

答案2

简短的回答是,您无法使用 VNC 执行此操作。每个 TCP 端口都将绑定到一个唯一的会话。据我所知,您在使用 Xpra、VNC、NX 等时会遇到同样的难题。(通过服务器(如 freenx)并通过 ssh 连接是一种解决方法,但不是理想的方法!)您可以通过编写一个简单的负载平衡器类型的应用程序来解决这个问题,但这仍然需要每个客户端一个端口。

至于你的其余问题:尺寸是用-屏幕对于使用这些选项启动 Xvnc,类似下面的操作应该可以工作:

Xvnc -screen 640x480x8 :100

Xvnc 会话和应用程序启动:我将把所有这些放在一个脚本中,并从 xinet.d 启动它

棘手的部分是防止用户重新连接到现有会话。这是一个不寻常的要求,因为这是 VNC 的一个基本功能。当您看到断开连接事件时,您可能能够解析 Xvnc 进程的输出并终止它(使用应用程序)。要在应用程序终止时终止 Xvnc,只需等待应用程序在脚本中终止,然后终止 Xvnc(如果它此时仍在运行)。

相关内容