一、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遠程管理的高級應用