SDB:FreeNX 到现有显示
情况
NX 设计为使用内部 VNC 服务器和客户端,以便能够连接到已经运行的 X 会话,通常是显示器 :0(X 会话从 0 开始计数)。在开源版本 FreeNX 中,此功能仍然无法正常工作。本文描述了如何使用外部 VNC 服务器和客户端来实现相同的功能。
优点
这使您能够拥有 VNC 桌面共享的便利性、SSH 的安全性(NX 使用 SSH 加密)以及 NX 的响应速度和压缩。非常适合低速和高延迟连接。
缺点
一旦您有一个本地 X 会话正在运行,您将无法创建一个新的 FreeNX 会话。但是,如果您有一个系统正在运行,您不需要运行本地显示,那么您就不需要阅读本文。您只需要一个常规的 NX 连接,您可以暂停并重新连接到它。
您想在什么情况下(使用 FreeNX)连接到本地显示?
- 有人正在实际使用计算机,您使用此解决方案来处理您想从受保护网络外部帮助他的情况。
- 您使用 GUI 软件,该软件在启动时自动加载,并且需要保持运行。您想不时从远程位置进行检查。
先决条件
您已经能够使用 FreeNX 登录到您的计算机。如果不是,请阅读 FreeNX 服务器。本文描述了 NoMachine 的 NX 客户端的使用,但对于其他客户端软件应该相同。
软件
由于我们将使用我们自己的 VNC 软件并通过 NX 连接对其进行隧道传输,因此我们需要安装适当的 VNC 软件。在已经安装的软件之上,您需要打开 FreeNX 连接,您将需要以下软件包
- tightvnc
- x11vnc
使用以下命令安装它们:
配置 x11vnc
我们将使用 x11vnc 来提供我们的 VNC 显示。X11vnc 可以接受很多选项。通过命令行或在配置文件中。选项对于两者都是相同的,只有命令行方式需要“-”后缀。例如:-localhost在命令行中与配置文件中的 localhost 相同。
配置文件
X11vnc 自动查找$HOME/.x11vncrc在被调用时。对于我们的配置,创建此文件并键入所需的选项更容易。打开您最喜欢的文本编辑器并键入以下行
display :0 shared forever localhost rfbauth /home/user/.vnc/passwd
- display :0 设置显示编号。:0 是第一个。
- shared 启用超过 VNC 会话的可能性,不是真的必要,但可能会派上用场。
- forever 表示 x11vnc 在您断开连接时保持运行。默认情况下,只允许一个连接,并在之后停止 x11vnc。
- localhost x11vnc 不监听任何外部接口。绑定地址设置为 127.0.0.1,并且允许的主机是 127.0.0.1。
- rfbauth /home/user/.vnc/passwd 将 user 替换为您的用户名。这是存储 VNC 密码的路径。rfbauth设置密码类型。
密码文件
现在我们需要创建上述密码文件。密码只是为您提供一些额外的安全性。客户端将使用相同的文件(因为它将在同一系统和作为同一用户运行),因此您不必每次连接时都输入密码。它只是确保没有人可以劫持您的会话。(例如,具有 SSH 连接的其他用户被视为 x11vnc 的本地主机连接)。在 shell 中运行
使用默认提到的位置,就像我们上面设置的一样。两次输入相同的密码,只有前 8 个字符将被使用。因此,输入更长的密码是没有用的。
检查文件权限(默认情况下应该没问题)。
应该给出如下输出
-rw------- 1 user users 8 2010-09-11 16:30 passwd ^^ This should be the only permissions.
如果您在那里看到更多内容,请运行
配置 vncviewer
Vncviewer 与“thightvnc”软件包一起安装。我们需要 vncviewer,因为 NX 客户端无法连接到 x11vnc。此外,直接执行 vncviewer 而不是窗口管理器不起作用。为此,我们可以使用解决方法。我们创建一个 shell 脚本,该脚本执行 vncviewer。我们让 NX 客户端执行此脚本(并且我们告诉 NX 客户端此脚本是一个窗口管理器)以使 VNC 连接正常工作。
打开您最喜欢的文本编辑器并键入
#!/bin/sh exec vncviewer -passwd /home/user/.vnc/passwd localhost::5900
并将其保存为/home/user/bin/nxvnc。使文件可执行
Vncviewer 接受密码相同的文件格式,因此我们将其指向与 x11vnc 相同的密码文件/home/user/.vnc/passwd使用-passwd选项。localhost::5900指向 x11vnc 端口号。5900 代表显示器 :0。
运行
x11vnc
执行命令
x11vnc 加载了前面配置文件中给定的预设置。关闭 shell 后会删除 x11vnc。您可能正在使用 ssh,这肯定不是您想要的。您可以使用 。Screen 是 bash 内部的虚拟 tty/控制台,可以分离但仍然在后台活动。提供 x11vnc 直到您重新附加并杀死 screen 或 x11vnc。
这会在 screen 中加载 x11vnc。您可以检查进度。如果一切正常,请按CTRL+A+D分离。如果您想再次重新附加,请发出:(作为同一个用户!)
NX 客户端
在此示例中,使用了 NoMachine 的 NX 客户端。它可以从 NoMachine 下载页面 获取。虽然它是免费的,但它不是 免费和开源 的。
参见
相关文章
外部链接
- http://www.nomachine.com NoMachine 官方网站。
- http://freenx.berlios.de FreeNX 网站。
- http://www.karlrunge.com/x11vnc/ x11vnc 网站。





