原由
接下去的工做要做一些數值模擬,因而到師兄的工做站上開了個賬號。工做站運行的是RHEL4,要說遠程SSH,就算是FTerm也足夠勝任,不過,由於我要用的查看計算結果的軟件須要使用圖形界面,這一點就比較麻煩了。用VNC,一來耗費資源,二來VNC在win下的表現實在不咋樣。
參考
記起上學期的VLSI設計的計算機實驗,幾十我的從運行Windows XP的PC上,用XShell SSH到實驗中心的運行Solaris的Sun工做站,運行Cadence的工具集,那就是帶GUI的。因而想,是否我也能這麼幹呢?往Debian中文和Ubuntu中文郵件列表投遞了封郵件,提出了這個問題,根據列表上的回覆,再Google了一圈,整理了一下,基本上明白了該怎麼作,細節的問題仍是不清楚,因而先作一下再說。
1、原理
Linux/Unix的X Window具備網絡透明性。X Window系統裏有一個統一的Server來負責各個程序與顯示器、鍵盤和鼠標等輸入輸出設備的交互,每一個有GUI的應用程序都經過網絡協議與Server進行交互。因此對於任何一個應用程序,本地運行和遠程運行的差異僅僅是X Server的地址不一樣,別的沒有差異。因此在Windows運行一個X Server,就能夠很方便的遠程運行有GUI的Linux應用了。同時,OpenSSH具備X轉發功能,能夠將Linux主機的X程序經過SSH的管道轉發給客戶端。因而,經過PuTTY到主機,再將接收到的由主機轉發來的X程序的交互交給在本地Windows系統下運行的X Server來管理和顯示,原則上說,這就能夠實現遠程使用Linux的GUI程序。
主機上須要的配置:
#vi /etc/ssh/sshd_config
取消這一行的註釋——若是沒有這一行則手動添加之:
X11Forwrding yes
這樣配置的做用就是容許SSH的X轉發。其實本質上說,這樣作是有必定安全風險的,SSH並不能絕對的保證你數據的安全性,不過,通常狀況下,這也夠了。
2、安裝Xming
須要在本地Windows上運行一個X Server。選擇有不少:Cygwin下的X Server恐怕是最著名的,可是爲了這麼一個小小的事情去安裝一個「相對巨大」的Cygwin,彷佛有些誇張;除了Cygwin,還有兩個著名的商業軟件能夠選用,Xwin32和Xmanager,上學期IC實驗用的就是Xmanager,感受很流暢很好用,不過,雖然Xmanager能夠試用,可是終究仍是商業軟件;還有一個選擇,就是這裏要講的,開源軟件Xming。
Xming是一個配置簡單而功能強大的開源X Server,能夠運行在M$的XP/2003/Vista操做系統下。
Xming的主頁:
http://www.straightrunning.com/XmingNotes/
Xming的SourceForge頁面:
http://sourceforge.net/projects/xming/
從SourceForge下載Xming-setup.exe(最新的版本是6.9.0.31),在本地安裝。
第一次運行時使用開始菜單裏面的XLaunch來啓動,產生一個初始的配置文件。對於簡單的使用來講,不須要任何特殊的配置,一切使用默認便可。Xming的具體配置和使用能夠參考
Xming的Manual
。
須要記住的是下圖中標示出的「Display number」中的數字,此處使用默認的0。
啓動完成後,在托盤區會出現一個「X」形狀的圖標,這表示Xming已經在運行了,將鼠標懸停上去,能看到當前使用的「Display number」。
3、配置PuTTY
Windows下有不少支持SSH/Telnet等遠程登陸協議的客戶端,好比SecureCRT、XShell、PuTTY等,甚至你們用來登陸BBS灌水用的FTerm都帶有SSH的功能,只不過不如PuTTY這樣的軟件專業和強大罷了。
我用的是著名的免費的PuTTY,相信不少人的選擇也跟我同樣。所以,就再也不贅述PuTTY的配置和使用了。這裏要說的,是添加PuTTY對X轉發的支持。運行PuTTY,在配置界面,選擇「Connection-SSh-X11」,選中「Enable X11forwarding」,「X display location」中填上上一步中「Display number」中的數字(此處就是「localhost:0」)。
而後鏈接登陸遠程主機,看上去一切正常的樣子。
4、問題及解決之道
因而試着運行一下emacs吧!
嘿!圖形界面果真出來了,只是,咋看不到文字,全是些方塊啊?!
看看終端的輸出信息:
-bash-2.05b$ emacsWarning: Cannot convert string "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*" to type FontStructWarning: Cannot convert string "-*-helvetica-medium-r-*--*-120-*-*-*-*-iso8859-1" to type FontStruct哦,原來是Xming沒有相應的字體!
去Xming的主頁查查manual,能夠爲Xming添加Windows的系統字體,也可使用Xming提供的字體。
使用Xming提供的字體是很簡單的,從Xming的SourceForge頁面下載xming-fonts-setup.exe(最新版本是7.3.0.15),安裝到Xming的安裝路徑下便可。個人Xming安裝路徑是D:\Program\Xming\,則安裝字體以後的字體路徑就是D:\Program\Xming\fonts\。經測試,這樣安裝字體後,運行emacs字體能正常顯示了。
若是不想安裝字體,天然也可讓Xming使用Windows的系統字體。但是怎麼配置呢?
還記得Linux下是怎麼添加字體的麼?對了,要爲字體生成cache文件,使用的工具就是mkfontscale。
爲此,從Xming的SourceForge頁面下載Xming-tools-and-clients,解壓縮到Xming的安裝路徑。切換到Windows的的cmd(命令提示符),cd到Xming的目錄,執行如下命令:>mkfontscale C:/WINDOWS/Fonts>mkfontscale -b -s -l C:/WINDOWS/Fonts #ignore the 'Couldn't...fon' messages
而後編輯|Xming安裝路徑下的font-dirs文件,添加字體路徑:
C:\WINDOWS\Fonts
記住:雖然是在Windows下,注意區分大小寫仍然是個好習慣。
OK!再來試試,嘿,這下子emacs是否是正常多了呢?
小小的Tips:用你的防火牆阻止Xming訪問網絡。由於,這樣的一個X Server本質是不安全的,並且,你並不須要它聯網,由於你只是在本機使用而已。
感覺:Xming整體來講仍是不如Xmanager,運行的流暢程度仍是有不小的差距,尤爲是鼠標的移動,感受一頓一頓的,縱然是在局域網內,狀況也沒有好特別多。
若是出不來,顯示no display
須要安裝如下軟件:
yum install -y xauth
而後退出,再從新登陸就能夠了。
還能夠裝字庫
yum -y groupinstall fontsphp