SDB:FreeNX 服务器
关于
NX 是一种远程访问协议。它既快速、安全、图形化又开放(与仅快速和开放的 Telnet 协议相反)。
NX 基本上是一种客户端-服务器协议,允许您图形化地访问任何机器。它基于 SSH(用于安全性)和 X 压缩(用于 GUI 和速度),并且 NX 比普通的 X 协议更容易使用。
本教程介绍了如何将 SUSE Linux 10.0 用作终端服务器,如何配置内容以及如何连接到它。
简短历史
在 NoMachine 多年前创建 NX 之后,他们将他们的核心库和命令行工具发布给公众(作为 GPL)。Kurt Pfeifle - 一位 KDE 贡献者 - 拿走了这些库和工具,并创建了一个最初的(未发布)脚本,该脚本在一定程度上自动化了设置远程 NX 连接的过程。在 Kurt 将 Fabian Franz(当时是 Knoppix 和 MPlayer 的贡献者)介绍给 NX 之后,Fabian 创建了一个名为 FreeNX 的项目;FreeNX 是 NoMachine 商业(和闭源)NX 服务器的一个类似实现。
NoMachine 仍然以 GPL 许可发布他们的核心库,免费赠送他们的 NX 客户端,并授予其免费二进制分发权。他们的客户端可用于访问 FreeNX 服务器。
我们可以使用 GPL 许可的 FreeNX 服务器实现和 KDE “knx” 客户端(尽管后者仍然缺少许多功能且缺乏维护)。
还有 GPL 许可的 2X 服务器客户端(另一家公司使用 NX 核心库的商业产品),据称可以与 FreeNX 一起工作。
设置事项
openSUSE 11.3
存在一个已知错误(Bugzilla #615164)。由于 SSL 的更改。在像 11.1 和 11.2 描述的那样安装之后,必须将以下行添加到/etc/nxserver/node.conf:
COMMAND_MD5SUM="md5sum"
在 64 位系统上,您可能会遇到此问题
Setting up cups nxipp backend ...cp: cannot stat `/usr/lib64/cups/backend/ipp': No such file or directory
只需创建缺少的目录
$ mkdir /usr/lib64/cups/backend/ipp
然后重新运行安装
一个经常出现的问题是,您必须尝试多次才能成功建立连接。您可以通过在脚本 /usr/bin/nxnode 中引入“sleep 4”来解决此问题
# Patch - delay to allow nxagent to complete launching. ccb 20100407 sleep 4 echo "Xft.dpi: 96" | DISPLAY=:$display xrdb -merge >>"$USER_FAKE_HOME/.nx/C-$sess_id/session" 2>&1
将上述文本块的前 3 行插入到该块的最后一行之前。
另一个问题是箭头键不起作用或具有意外的操作。解决方案是在包含
${client:+client=$client,}
的行中添加文本
${kbtype:+kbtype=$kbtype,}${kbload:+kbload=$kbload,}${keymap:+keymap=$keymap,}
将客户端上面的文本插入到上面的文本之后。上面的行只是整行的一部分。
还有报告称,在安装后需要更改文件 /var/lib/nxserver 的所有者,方法是执行命令
chown nx /var/lib/nxserver
另一个报告是关于用户 nx 的创建,该用户被创建为禁用的帐户,这阻止了它通过公钥身份验证提供访问权限。报告的解决方案是使用命令为该帐户设置密码
passwd nx
之后,系统将提示您输入密码,您可以输入任何密码,但是您必须键入两次。
SSH 用户组
运行 nxsetup --install --setup-nomachine-key --clean 时出错
如果您创建了一个特殊的组(例如 ssh_group_user)用于 ssh 用户(遵循某些论坛的建议),并已通过添加配置 /etc/ssh/sshd_config 为这些用户配置
AllowGroups ssh_group_user
您必须执行修改 (a) 或 (b)
a)
- 删除组 ssh_group_user(如我的示例所示)
- 将 AllowGroups 更改为 --> AllowGroups utmp
- 将组 utmp 添加到所有 ssh 用户
或
b)
编辑 /var/bin/nxsetup。在第 274 行附近,并更改搜索
echo -n "Adding user \"nx\" to group \"utmp\" ..."
usermod -G utmp nx
并将 utmp 替换为您的 ssh 用户组的名称(如我的示例中的 ssh_group_user)。
echo -n "Adding user \"nx\" to group \"ssh_group_user\" ..."
usermod -G ssh_group_user nx
openSUSE 11.1 和 11.2
FreeNX 包不再存在于官方 openSUSE 11.2 存储库中。但是,这些包在 Build Service 中可用。
将 11.2 替换为正在运行的 openSUSE 版本 11.1。
zypper ar http://download.opensuse.org/repositories/X11:/RemoteDesktop/openSUSE_11.2 RemoteDesktop zypper ref zypper in FreeNX NX
- 作为安装上述 rpm 之前的先决条件,您可能需要安装 expect 和 rdesktop 等软件包。使用 YaST 的软件管理或 zypper 在命令行上安装。
- 首次安装服务器时,运行 nxsetup --install --setup-nomachine-key
- 使用 nxserver --status 检查服务器状态。服务器在 ssh 端口 22 上运行。
- 使用任何 NX 客户端测试连接。官方 No Machine 客户端可以从 www.nomachine.com 下载,该客户端将客户端二进制文件安装在 /usr/NX/bin/nxclient 处。请参阅 http://walter.deback.net/blog/archives/19 以有效地使用 NX 客户端。
openSUSE 10.0
如果您像我一样,正在运行 SUSE Linux 10.0 - 您需要使用 YaST 安装 FreeNX 包(服务器),以及一些客户端软件(在本地机器上进行测试) - 您可以使用 freeware NX 客户端(来自 www.nomachine.com/download)或使用开源“knx” - 标准 KDE NX 客户端。
设置程序后,过程非常简单。
首先进入 ,然后
1) 让我们确保您安装了正确的软件包
linux:/ # rpm -q FreeNX
FreeNX-0.4.4-4 ; 对于 openSUSE 11.1,这是:FreeNX-0.7.3-1.1
如果它没有返回任何内容,则使用 YaST 安装它。如果返回“FreeNX-0.4.4-4”像我的例子一样,那么一切正常。
2) 这将配置 FreeNX 服务器:(使用标准密钥)
linux:/ # nxsetup --install --setup-nomachine-key --clean
至少在 openSUSE 11.1 中,您会看到一些检查完成。有些可能会失败,但可能无害,除非您希望这些功能正常工作。最后,将对 nxsetup 的输出保存到一个文本文件中以供以后参考。
3) 启动任何 NX 客户端 - 我使用 NoMachine 的 - 并输入:localhost 作为我的主机,22 作为我的 SSH 端口 - 因为 NX 基于 SSH,我的用户名和密码,桌面:UNIX/KDE 设置分辨率,按确定 - 一切都运行得很好 !
NX-In-Action 截图
恭喜 ! ! ! 您完成了 !
接下来的段落严格用于高级 NX 配置。您不需要阅读它们即可使 NX 正常工作。
运行终端服务器
在实际环境中,运行终端服务器不仅仅是配置 NX 服务器 - 它还需要在服务器上配置用户。在 SUSE Linux 中,使用 Yast 最容易做到这一点。现在我们需要配置客户端 - 有两种方法可以实现
1) 使用现有的(Windows ?)工作站并在其上安装 NX 客户端。
2) 使用带有 NX 客户端的 LiveCD。较新的 Knoppix 具有 v3.9+。
注意 1:不幸的是,SUSE Live DVD 不符合规范 - 它不包含 NX 客户端 _并且_ 不包含 UnionFS 以安装 NX 客户端。SUSE Live DVD 仍然可以使用 - 但您必须手动使用用户帐户安装 NX 客户端,这比 Knoppix 难。
注意 2:FreeNX 作为终端服务器非常棒,因为它非常快速、安全,并且软件不受客户端数量的限制 - 您的唯一限制是服务器的性能(即 CPU 和 RAM 的性能)
3) 使用无盘发行版,例如 thinstation 或 2x.com。
关于 NX 客户端的说明
存在两个 NX 客户端
a) freeware NoMachine 的“NX 客户端”(闭源)。高级客户端。
b) 和一个开源 KDE“knx”客户端。简单客户端。
每个都受不同平台的支持
1) Windows 95...XP - 必须使用 a。
2) Mac OS X (ppc) - 必须使用 a。
3) Linux - 可以使用 a - 或 - b。
4) FreeBSD - 必须使用 b。
5) Solaris (sparc) - 必须使用 a。
服务器只能是 Linux 或 UNIX 主机。
SUSE Linux 10.0 得到很好的支持。其他 UNIX/Linux 可能需要编译内容。
如果安装了 KDE4,则使用 KDE3
如果 NX 服务器上安装了 KDE4,并且您尝试登录到 KDE 桌面,则 NX 服务器将默认登录到 KDE4 桌面。
如果您想连接到 KDE3 桌面,请将以下行添加到/etc/nxserver/node.conf文件
COMMAND_START_KDE=startkde3
在 openSUSE 11.0 上,startkde启动 KDE4,而startkde3启动 KDE3。
更改 NX TCP 端口
由于更改客户端上的 NX 端口很简单 - 我将在这里专注于服务器。
由于 FreeNX 服务器基于 SSH,因此更改 NX 端口需要您更改 SSH 端口,否则 NX 将失败。SSH 和 NX 的默认 TCP 端口是 22。SUSE Linux 10.0 上的配置文件是
/etc/nxserver/node.conf
/etc/ssh/sshd_config
...并且不要忘记之后重新启动 SSH 服务。
高级用户提示
通过使用此技术 - 您可以有效地设置一个 Linux 发行版的农场,甚至在您的家用 PC 上 - 使用某种虚拟化(VMware/Qemu/Xen) - 通过设置侦听不同端口的虚拟 NX 服务器。这真的很酷 - 因为它可以同时从 LAN 和 Internet 使用 !
运行级别
NX 服务器可以在运行级别 3 或 5 中运行。NX 服务器不使用显卡,因此它将工作。
NX 客户端需要您使用运行级别 5。(*仅当您在 SUSE Linux 上运行 NX 客户端时适用 - 因为 Windows 没有运行级别概念)
要找出您现在正在使用的运行级别,请使用
> who -r
run-level 5 2006-04-24 17:33 last=S
国际键盘支持
NX 服务器需要对 /etc/nxserver/node.conf 进行小的修改,作为 root,以允许 NX 客户端使用其他键盘设置,而不是美国(QWERTY)设置
在 /etc/nxserver/node.conf 中找到以下行
#AGENT_EXTRA_OPTIONS_X=""
并将其更改为
AGENT_EXTRA_OPTIONS_X="-xkbdir /usr/share/X11/xkb"
使用以下命令重新启动 NX 服务器
nxserver --restart
然后重新连接您的 NX 客户端,这样就完成了。您现在应该拥有一个可用的国际键盘。
SLE 10 修改
这些说明适用于 SLED10 SP2 和 SLES10 SP2,并具有以下其他设置步骤
- FreeNX、NX、rdesktop 不随 SLE 10 一起提供,因此您必须从 OBS 项目 下载 RPM。
- FreeNX 依赖于以下可以从随附的 CD/DVD/ISO 安装的软件包
- expect
- NX
- 运行 nxsetup 后,必须取消注释以下行并在 /etc/nxserver/node.conf 中进行修改
COMMAND_SESSREG="/usr/X11R6/bin/sessreg"
- 这可以防止在尝试连接客户端时出现以下错误
/usr/bin/nxserver: line 874: sessreg: command not found NX> 280 Exiting on signal: 15
SLE 11 修改
这些说明适用于 SLED11(也应该适用于 SLES11,但未经测试),需要以下额外的设置步骤
- FreeNX 依赖于以下可以从随附的 CD/DVD/ISO 安装的软件包
- expect
- FreeNX、NX、rdesktop 不包含在 SLE 11 中,因此可以通过 OBS 项目仓库安装:openSUSE11.1 RemoteDesktop Repo
- 运行 nxsetup 后,必须取消注释并修改 /etc/nxserver/node.conf 中的以下行(请注意与 SLE10 的路径差异)
COMMAND_SESSREG="/usr/bin/sessreg"
- 这可以防止在尝试连接客户端时出现以下错误
/usr/bin/nxserver: line 874: sessreg: command not found NX> 280 Exiting on signal: 15
参见
相关文章
外部链接
- http://www.nomachine.com NoMachine 官方网站。
- http://freenx.berlios.de FreeNX 网站。
