起因接下去的工作要作一些數(shù)值模擬,于是到師兄的工作站上開了個(gè)賬號(hào)。工作站運(yùn)行的是RHEL4,要說遠(yuǎn)程SSH,就算是FTerm也足夠勝任,不過,因?yàn)槲乙玫牟榭从?jì)算結(jié)果的軟件需要使用圖形界面,這一點(diǎn)就比較麻煩了。用VNC,一來耗費(fèi)資源,二來VNC在win下的表現(xiàn)實(shí)在不咋樣。
參考記起上學(xué)期的VLSI設(shè)計(jì)的計(jì)算機(jī)實(shí)驗(yàn),幾十個(gè)人從運(yùn)行Windows XP的PC上,用XShell SSH到實(shí)驗(yàn)中心的運(yùn)行Solaris的Sun工作站,運(yùn)行Cadence的工具集,那就是帶GUI的。于是想,是否我也能這么干呢?往Debian中文和Ubuntu中文郵件列表投遞了封郵件,提出了這個(gè)問題,根據(jù)列表上的回復(fù),再Google了一圈,整理了一下,基本上明白了該怎么做,細(xì)節(jié)的問題還是不清楚,于是先做一下再說。
一、原理Linux/Unix的X Window具有網(wǎng)絡(luò)透明性。X Window系統(tǒng)里有一個(gè)統(tǒng)一的Server來負(fù)責(zé)各個(gè)程序與顯示器、鍵盤和鼠標(biāo)等輸入輸出設(shè)備的交互,每個(gè)有GUI的應(yīng)用程序都通過網(wǎng)絡(luò)協(xié)議與Server進(jìn)行交互。所以對(duì)于任何一個(gè)應(yīng)用程序,本地運(yùn)行和遠(yuǎn)程運(yùn)行的差別僅僅是X Server的地址不同,別的沒有差別。所以在Windows運(yùn)行一個(gè)X Server,就可以很方便的遠(yuǎn)程運(yùn)行有GUI的Linux應(yīng)用了。同時(shí),OpenSSH具有X轉(zhuǎn)發(fā)功能,可以將Linux主機(jī)的X程序通過SSH的管道轉(zhuǎn)發(fā)給客戶端。于是,通過PuTTY到主機(jī),再將接收到的由主機(jī)轉(zhuǎn)發(fā)來的X程序的交互交給在本地Windows系統(tǒng)下運(yùn)行的X Server來管理和顯示,原則上說,這就可以實(shí)現(xiàn)遠(yuǎn)程使用Linux的GUI程序。
主機(jī)上需要的配置:#vi /etc/ssh/sshd_config取消這一行的注釋——如果沒有這一行則手動(dòng)添加之:
X11Forwrding yes這樣配置的作用就是允許SSH的X轉(zhuǎn)發(fā)。其實(shí)本質(zhì)上說,這樣做是有一定安全風(fēng)險(xiǎn)的,SSH并不能絕對(duì)的保證你數(shù)據(jù)的安全性,不過,一般情況下,這也夠了。
二、安裝Xming需要在本地Windows上運(yùn)行一個(gè)X Server。選擇有很多:Cygwin下的X Server恐怕是最著名的,但是為了這么一個(gè)小小的事情去安裝一個(gè)“相對(duì)巨大”的Cygwin,似乎有些夸張;除了Cygwin,還有兩個(gè)著名的商業(yè)軟件可以選用,Xwin32和Xmanager,上學(xué)期IC實(shí)驗(yàn)用的就是Xmanager,感覺很流暢很好用,不過,雖然Xmanager可以試用,但是終究還是商業(yè)軟件;還有一個(gè)選擇,就是這里要講的,開源軟件Xming。
Xming是一個(gè)配置簡(jiǎn)單而功能強(qiáng)大的開源X Server,可以運(yùn)行在M$的XP/2003/Vista操作系統(tǒng)下。
Xming的主頁(yè):http://www.straightrunning.com/XmingNotes/
Xming的SourceForge頁(yè)面:http://sourceforge.net/projects/xming/
從SourceForge下載
Xming-setup.exe(最新的版本是6.9.0.31),在本地安裝。
第一次運(yùn)行時(shí)使用開始菜單里面的
XLaunch來啟動(dòng),產(chǎn)生一個(gè)初始的配置文件。對(duì)于簡(jiǎn)單的使用來說,不需要任何特殊的配置,一切使用默認(rèn)即可。Xming的具體配置和使用可以參考Xming的Manual。
需要記住的是下圖中標(biāo)示出的“
Display number”中的數(shù)字,此處使用默認(rèn)的
0。
啟動(dòng)完成后,在托盤區(qū)會(huì)出現(xiàn)一個(gè)“X”形狀的圖標(biāo),這表示Xming已經(jīng)在運(yùn)行了,將鼠標(biāo)懸停上去,能看到當(dāng)前使用的“
Display number”。
三、配置PuTTYWindows下有很多支持SSH/Telnet等遠(yuǎn)程登錄協(xié)議的客戶端,比如SecureCRT、XShell、PuTTY等,甚至大家用來登錄BBS灌水用的FTerm都帶有SSH的功能,只不過不如PuTTY這樣的軟件專業(yè)和強(qiáng)大罷了。
我用的是著名的免費(fèi)的PuTTY,相信很多人的選擇也跟我一樣。因此,就不再贅述PuTTY的配置和使用了。這里要說的,是添加PuTTY對(duì)X轉(zhuǎn)發(fā)的支持。運(yùn)行PuTTY,在配置界面,選擇“
Connection-SSh-X11”,選中“
Enable X11forwarding”,“
X display location”中填上上一步中“
Display number”中的數(shù)字(此處就是“
localhost:0”)。
然后連接登錄遠(yuǎn)程主機(jī),看上去一切正常的樣子。
四、問題及解決之道
于是試著運(yùn)行一下emacs吧!
嘿!圖形界面果然出來了,只是,咋看不到文字,全是些方塊???!
看看終端的輸出信息:
-bash-2.05b$ emacs
Warning: Cannot convert string "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*" to type FontStruct
Warning: Cannot convert string "-*-helvetica-medium-r-*--*-120-*-*-*-*-iso8859-1" to type FontStruct
哦,原來是Xming沒有相應(yīng)的字體!
去Xming的主頁(yè)查查manual,可以為Xming添加Windows的系統(tǒng)字體,也可以使用Xming提供的字體。
使用Xming提供的字體是很簡(jiǎn)單的,從Xming的SourceForge頁(yè)面下載xming-fonts-setup.exe(最新版本是7.3.0.15),安裝到Xming的安裝路徑下即可。我的Xming安裝路徑是D:\Program\Xming\,則安裝字體之后的字體路徑就是D:\Program\Xming\fonts\。經(jīng)測(cè)試,這樣安裝字體后,運(yùn)行emacs字體能正常顯示了。
如果不想安裝字體,自然也可以讓Xming使用Windows的系統(tǒng)字體??墒窃趺磁渲媚??
還記得Linux下是怎么添加字體的么?對(duì)了,要為字體生成cache文件,使用的工具就是mkfontscale。
為此,從Xming的SourceForge頁(yè)面下載Xming-tools-and-clients,解壓縮到Xming的安裝路徑。切換到Windows的的cmd(命令提示符),cd到Xming的目錄,執(zhí)行以下命令:
>mkfontscale C:/WINDOWS/Fonts
>mkfontscale -b -s -l C:/WINDOWS/Fonts #ignore the 'Couldn't...fon' messages然后編輯|Xming安裝路徑下的
font-dirs文件,添加字體路徑:
C:\WINDOWS\Fonts記住:雖然是在Windows下,注意區(qū)分大小寫仍然是個(gè)好習(xí)慣。
OK!再來試試,嘿,這下子emacs是不是正常多了呢?
小小的Tips:用你的防火墻阻止Xming訪問網(wǎng)絡(luò)。因?yàn)?,這樣的一個(gè)X Server本質(zhì)是不安全的,而且,你并不需要它聯(lián)網(wǎng),因?yàn)槟阒皇窃诒緳C(jī)使用而已。
感受:Xming總體來說還是不如Xmanager,運(yùn)行的流暢程度還是有不小的差距,尤其是鼠標(biāo)的移動(dòng),感覺一頓一頓的,縱然是在局域網(wǎng)內(nèi),情況也沒有好特別多。