一、Linux远程控制技术概念和起源
远程控制是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术,这里的远程不是字面意思的远距离,一般指通过网络控制远端电脑,不过,大多数时候我们所说的远程控制往往指在局域网中的远程控制而言。当操作者使用主控端电脑控制被控端电脑时,就如同坐在被控端电脑的屏幕前一样,可以启动被控端电脑的应用程序,可以使用被控端电脑的文件资料,甚至可以利用被控端电脑的外部打印设备(打印机)和通信设备(调制解调器或者专线等)来进行打印和访问互联网,就像你利用遥控器遥控电视的音量、变换频道或者开关电视机一样。
目前主要的应用于Linux的远程连接技术大致分为以下三种:
1. 基于命令行的方式
*Linux命令:telnet。telnet在linux和windows下均可用,只要打开相应的服务即可。telnet 的所有数据在网络上都是明文传输,所以也有安全隐患,在实际的生产系统中也基本上废弃不用,而转用更安全的ssh。但是在某些场合,如内部局域网络, telnet 还是有用武之地的。ssh和telnet类似,但是数据在网络上是加密后再传输的。Ssh命令请查看笔者的前文:应用Linux 下的SSH客户端连接OPENSSH服务器,网络链接:http://publish.it168.com/2006/0927/20060927003601.shtml 。
*rlogin、rsh等r系列命令。因为有较大的安全隐患,所以现在基本上废弃不用。
*基于ssh的客户端软件。Secure SSH 或PUTTY等客户端工具通过ssh服务来实现Windows下管理Linux服务器的,这些客户端工具配置使用简单,但是它们都无法启动窗口服务的程序或进程,也无法达到远程桌面控制。
说明:命令行的管理方式适合进行初始化、网卡配置等基本操作,不适合做丰富的管理功能。
2. Web管理方式
Web管理方式是另一种管理工具。这种方式提供了简单的管理界面,适合那些功能不是很多的管理工作。
3. 基于管理端软件的图形界面方式
基于管理端软件的图形界面方式一般需要完成对系统的配置、管理和监控。图形的管理方式:直观,是一种重要的管理工具,适合进行复杂的配置,连接多台服务器,同时支持丰富的审计和日志的功能。
*VNC。NC(Virtual Network Computing,虚拟网络计算) 技术是广泛用作程序员和管理员的“生产力工具”。vnc要有个服务端的守护进程,为每个共享的桌面运行。VNC是客户端/服务器架构。
*X显示管理器(X display manager)或者说xdm。Xdm不用再添加额外的客户端软件了。X-Win32 (http://www.starnet.com/evalkey/ 是X Window系统服务器,它允许你的Windows系统通过TCP/IP协议运行X应用程序或Unix系统。支持运行在Sun, HP, SGI,Linux, SCO, AIX, 和其他 Unix 工作站和文件服务器上的OpenLook, Motif, CDE, VUE, GDM, Gnome及其它X应用。请到厂商主页申请试用码。
*Freenx。NX是一个基于X协议的远程显示软件,但是对X协议数据进行压缩,重要的特性是能够在低带宽的网络情况下使用X协议。Freenx是NX的GPL版本。#p#副标题#e#
二、用FreeNX安全管理远程Linux服务器
FreeNX 是近年来继VNC之后新出现的远程控制解决方案,基本原理是将XWindows的信号压缩后传输到远程客户端显示,而VNC是直接截取屏幕图像处理传输。这样,在同样的传输信道条件下,FreeNX可以比VNC提供更好的操作感和实时性;也正因为其实现原理依赖于XWindows,因此FreeNX目前也就不支持将Windows作为远程控制服务器端。 FreeNX核心库是由NOMACHINE公司以GPL授权开放源代码方式发布的,开源社区利用这一部分代码完成了一个服务器端,官方网站为http://freenx.berlios.de/ ,NoMachine公司自己也维护自己的商业服务器端及客户端,支持更多特性。FreeNX工作流程图如图1 。
图1 FreeNX工作流程图 |
网络结构以及IP地址分布如图2 。
图2 网络结构以及IP地址分布 |
1. Nxfree服务器端安装
下载软件:
#wget http://fedoranews.org/contributors/rick_stout/freenx/freenx-0.3.1-0.fdr.0.noarch.rpm
#wget http://fedoranews.org/contributors/rick_stout/freenx/nx-1.4.0-0.fdr.4.i386.rpm
#wget http://www.linux-tip.net/cms/workshop/freenx_FC3/expect-5.42.1-1.i386.rpm
#wget ftp://fr.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS/nc-1.10-18.i386.rpm
安装软件:
#rpm -ivh nc-1.10-18 RPM for i386
#rpm -i nx-1.4.0-0.fdr.4.i386.rpm
#rpm -i expect-5.4.2.1-1.i386.rpm
#rpm -i freenx-0.3.1-0.fdr.0.noarch.rpm
配置nxserver
# /usr/bin/nxsetup --install
Setting up /etc/nxserver ...done
Setting up /var/lib/nxserver/db ...done
Setting up /var/log/nxserver.log ...done
Setting up known_hosts and authorized_keys2 ...done
Setting up permissions ...done
Ok, nxserver is ready.
PAM authentication enabled:
All users will be able to login with their normal passwords.
PAM authentication will be done through SSH.
Please ensure that SSHD on localhost accepts password authentication.
You can change this behaviour in the /etc/nxserver/node.conf file.
Have Fun!
添加用户和密码
# nxserver --adduser x1
NX> 100 NXSERVER - Version 1.4.0-44 OS (GPL)
NX> 1000 NXNODE - Version 1.4.0-44 OS (GPL)
NX> 716 Public key added to: /home/x1/.ssh/authorized_keys2
NX> 1001 Bye.
NX> 999 Bye
[root@host tmp]# nxserver --passwd x1
NX> 100 NXSERVER - Version 1.4.0-44 OS (GPL)
New password:
Password changed.
NX> 999 Bye
说明x1 用户必须是服务器已经存在的用户。
修改权限
#nxsetup --install --setup-nomachine-key
chmod 666 /dev/urandom
# chmod 666 /dev/null
# chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2
启动、查看、停止nx命令
# nxserver --start: 启动NX服务器
nxserver --stop: 停止NX服务器
nxserver --status: 查看NX服务器
nxserver --restart: 重新启动NX服务器
nxserver --help: 查看帮助信息
如果你在使用 iptables防火墙,你必需打开相应端口:
# iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A OUTPUT -p udp --sport 22 -j ACCEPT
# iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
#iptables -A OUTPUT -p udp --sport 5000 -j ACCEPT
说明:NxFree服务器完全依赖于SSH进行工作,所以请先确保Linux服务器的Openssh配置无误。
#p#副标题#e#
2.Linux 客户端软件安装和连接nx服务器
系统要求
硬件: 中央处理器:兼容 Intel X86处理器Pentium 200 以上 ,32 兆(推荐64兆)内存,100兆硬盘空间 ,显示内存4兆。
软件: 内核版本 2.2以上 ,KDE 2.0以上或GNOME 1.2以上,X Window System XFree86 3.6.x 以上,桌面分辨率至少为640×480 ,桌面颜色至少6万5千色(16位元)。
客户端软件下载安装
# wget http://64.34.161.181/download/2.1.0/Linux/nxclient-2.1.0-17.i386.rpm
#rpm -ivh nxclient-2.1.0-17.i386.rpm
初始化客户端软件
#nxclient --wizard
系统会自动弹出一个初始化对话框如图3。
图3 初始化对话框 |
按next按钮继续,在“session”栏目选择一个名称,在“Host”栏目填写服务器IP地址或者域名。在“Select type of your internet connection”选择连接接服务器的方法,包括“LAN”、“Wan”、“ADSL”、“ISDN”、“MODEM”五种,如图3 。
图4 选择会话、连接方式 |
按next按钮继续,选择桌面大小、桌面类型以及是否支持SSL(Enable SSL encryption of all traffic)安全连接等选项。如图5 。
图5 选择桌面大小、类型 |
按next按钮继续,选择是否在桌面建立快捷方式、是否进行高级设置如图6.
图6 |
如图6 选择是否在桌面建立快捷方式、是否进行高级设置。按“finsih”按钮继续完成初始化。出现连接窗口如图7 。
图7 nx客户端连接服务器窗口 |
在Login、passwd、session填写相关内容。然后按“Login”按钮进行远程连接Linux服务器,中间要进行两次口令的安全验证,大约需要十秒钟的时间。(连接时间取决于网络带宽和距离,笔者的Linux笔记本和Linux服务器距离200米,带宽100兆)。连接成功后就可以对Linux服务器进行管理了,下面是笔者远程连接Linux服务器的截图,如图8。
图8 远程连接Linux服务器的截图 |
外围的大桌面是Linux客户端(FC3 linux)界面,VNC内嵌的桌面就是远程Linux服务器(Suse linux)的桌面环境。这时就可以在服务器自由管理了。
总结:
FreeNX 是 NX 服务器的 GPL 实现,用于访问和显示另一计算机。它可以通过
高延时、低带宽的链路提供接近本地速度的应用程序响应速度。FreeNX的安全性能以及安装配置依赖于Openssh技术,所以配置它之前请务必安装好Openssh服务器,可以参考笔者的前文:如何构建安全的远程登录服务器,网络链接:http://publish.it168.com/2006/0922/20060922002501.shtml?positioncode=968 ,下篇文章笔者将介绍如何使用Windows客户端连接FreeNX服务器。以及FreeNX远程管理的高级应用