一、引言
我們可以通過telnet、ssh等遠程登錄Linux服務器,但都是字符界面的。本文介紹了通過XDMCP+XDM來遠程連接Linux服務器上的XFree86 Server,可以在圖形環境下遠程管理Linux服務器。
二、基本概念
1、什麼是XFree86
XFree86是X Window系統的一種開放源代碼的實現。它提供了一種對鼠標、鍵盤、顯卡和窗口圖形環境的Client-Server接口。所以客戶端程序可以運行在不同的主機上,由一台服務器提供X Window的Server服務。
2、什麼是XDMCP
XDMCP即“X Display Manager Control Protocol”,是一種網絡協議。由它來建立圖形客戶端程序與X Window服務器的連接與通信。
3、什麼是XDM
XDM即“X Display Manager”,由它來啟動X Window服務器,並管理圖形客戶端程序的登錄、會話、啟動窗口管理器(KDE、Gnome)等。KDE和Gnome也提供了自己的xdm的實現,分別叫kdm和gdm。
4、什麼是XFS
XFS即“X Font Server”,可以由由一台服務器來統一提供字體,遠程圖形客戶端程序就不需要單獨安裝所有的字體了。
三、配置過程
1、我們的環境
我們使用一台裝有Mandrake Linux 8.1的計算機作為X Window的服務器,服務器上網卡地址為192.168.0.1/24。並且在安裝Linux時一起安裝了XFree86相關軟件包。
我們在局域網中的另一台裝有windows 2000的計算機上安裝了X-Win32軟件,作為X Window的客戶端。還有很多Windows下的X客戶端程序,但大多是商業程序,如exceed只提供30天的試用期。而X-Win32沒有天數限制,只是每次只能使用30分鐘,這對於大多數基本的服務器維護操作也夠了,時間到了再連接就是了。免費使用商業程序不能要求太高了
2、配置服務器
(1)配置xfs
xfs的配置文件是/etc/X11/fs/config,內容如下:
#
# Default font server configuration file for Mandrake Linux workstation
#
# allow a max of 4 clients to connect to this font server
client-limit = 4
# when a font server reaches its limit, start up a new one
clone-self = off
# alternate font servers for clients to use
#alternate-servers = foo:7101,bar:7102
# where to look for fonts
# Some of these are commented out, i.e. the TrueType and Type1
# Directories in /usr/share, because they arent forced to be
# installed alongside X.
#
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/X11R6/lib/X11/fonts/mdk:unscaled,
/usr/share/fonts/default/Type1,
/usr/share/fonts/ttf/big5,
/usr/share/fonts/ttf/gb2312,
/usr/share/fonts/ttf/decoratives,
/usr/share/fonts/ttf/western
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 75,75,100,100
# how to log errors
use-syslog = on
在配置文件中可以定義最大客戶端連接數量,這裡缺省是4。配置文件中也指明了字體文件的位置,特別注意包含了中文字體,否則在客戶端無法正確顯示中文字體。
接下來修改/etc/rc.d/init.d/xfs文件,把所有“-port -1”改為“-port 7100”,這是xfs缺省監聽的端口。使用如下命令來重啟xfs:
service xfs stop
service xfs start
xfs啟動成功後,可以使用netstat -ln命令來確認7100端口已綁定:
tcp 0 0 0.0.0.0:7100 0.0.0.0:* LISTEN
(2)配置xdm
xdm的配置文件在/etc/X11/xdm目錄下。
首先修改xdm-config文件,找到一行:DisplayManager.requestPort: 0
注釋這行:!DisplayManager.requestPort: 0
如果有這行,xdm就不會監聽XDMCP的連接了。
接下來修改XAccess文件,這是控制客戶端訪問的配置文件,修改內容如下:
#* #any host can get a login window
192.168.0.*
這裡允許局域中的計算機都可以連接。
現在可以直接使用xdm命令來啟動xdm服務,使用netstat -ln命令來確認177端口(xdm缺省的端口)已綁定:
udp 0 0 0.0.0.0:177 0.0.0.0:*
如果想要在服務器啟動後自動運行xdm,就需要修改/etc/inittab文件,使啟動後進入“5”運行級別,修改內容如下:
id:5:initdefault:
3、使用圖形客戶端來測試
我們下載的是X-Win32 5.4版,在windows中安裝完成後,會在“程序組”中生成“X-Win32 5.4”,在其中有兩個可執行程序:X-config和X-Win32。
首先要使用X-config來建立連接配置:在“session”處選擇“add”,再選擇“XDMCP”連接方法,點“Next->”,在“Session name”處輸入一個名字,在“XDMCP Mode”處選擇“Broadcast”,再點“Save”保存配置。然後再選擇X-config主界面的“Font”,點擊“Add Font Server...”,在“Host”出輸入服務器的IP地址192.168.0.1,並確認“Port”為7100。
配置完後就可以啟動X-Win32了,啟動時當然要選擇“Evaluation”因為我們沒有注冊的。然後選擇剛才建立的session名稱,就會出現一個窗口顯示當前網絡中的X Window服務器名稱,選中我們的服務器點“OK”,就會出現xdm的登錄界面了,使用你在Linux中的用戶帳號登錄後,X Window圖形界面就出現了,和在Linux服務器上本地操作一樣。中文也顯示正常,因為使用的是服務器上的字體。
四、其它問題
1、獲得X-Win32
可以在www.starnet.com處下載X-Win32軟件,下載前需要注冊。
2、X Window客戶端和Windows相互粘貼拷貝
X-Win32還提供了讓X Window和Windows中內容相互粘貼拷貝的功能,這樣就方便多了。
五、參考資料
http://www.tldp.org/HOWTO/XDMCP-HOWTO/index.Html
http://www.tldp.org/HOWTO/mini/Xterminals/index.html