使用XMing+putty執行linux圖形介面程式
歡迎關注大資料和人工智慧技術文章釋出的微信公眾號:清研學堂,在這裡你可以學到夜白(作者筆名)精心整理的筆記,讓我們每天進步一點點,讓優秀成為一種習慣!
起因
接下去的工作要作一些數值模擬,於是到師兄的工作站上開了個帳號。工作站執行的是RHEL4,要說遠端SSH,就算是FTerm也足夠勝任,不過,因為我要用的檢視計算結果的軟體需要使用圖形介面,這一點就比較麻煩了。用VNC,一來耗費資源,二來VNC在win下的表現實在不咋樣。
參考
記起上學期的VLSI設計的計算機實驗,幾十個人從執行Windows XP的PC上,用XShell SSH到實驗中心的執行Solaris的Sun工作站,執行Cadence的工具集,那就是帶GUI的。於是想,是否我也能這麼幹呢?往Debian中文和Ubuntu中文郵件列表投遞了封郵件,提出了這個問題,根據列表上的回覆,再Google了一圈,整理了一下,基本上明白了該怎麼做,細節的問題還是不清楚,於是先做一下再說。
一、原理
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並不能絕對的保證你資料的安全性,不過,一般情況下,這也夠了。
二、安裝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”。
三、配置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”)。
然後連線登入遠端主機,看上去一切正常的樣子。
四、問題及解決之道
於是試著執行一下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 fonts
相關文章
- jmeter無圖形介面執行測試並生成報告JMeter
- 在 Deepin23 系統中,如何使用管理員身份(root 許可權)執行圖形介面程式(AvaloniaApp)APP
- 使用SCRT+XMING 圖形介面
- 26 使用者圖形介面
- Linux7 圖形介面的切換Linux
- Linux ubuntu命令列安裝圖形介面LinuxUbuntu命令列
- oracle linux 7 安裝圖形化介面OracleLinux
- 使用VC++6.0 進行圖形介面設計部分控制程式碼的使用方法C++
- GO-圖形使用者介面Go
- JavaGUI——Java圖形使用者介面JavaGUI
- 3 個 Linux 上的 SSH 圖形介面工具Linux
- Linux無圖形介面環境使用Python+Selenium實踐 (轉載)LinuxPython
- Matlab圖形使用者介面程式設計初級入門Matlab程式設計
- 雲伺服器linux centos安裝圖形介面伺服器LinuxCentOS
- Centos7 使用ssh進行x11圖形介面轉發CentOS
- Linux中 文字介面、X Window系統以及圖形介面的關係Linux
- 圖形使用者介面1:初識Walk
- Linux中終端介面與圖形介面之間的切換關係Linux
- 圖形使用者介面2:常用控制元件控制元件
- 課時35:圖形使用者介面入門
- Xmanager4遠端連線linux圖形介面(vsftpd配置)LinuxFTP
- java的圖形化介面 文字區JTextArea的程式例子Java
- 07圖形化介面和命令列介面操作命令列
- 『學了就忘』Linux檔案系統管理 — 66、通過圖形介面進行LVM分割槽LinuxLVM
- Linux磁碟爆滿無法進入圖形化介面解決方法Linux
- 麒麟linux +達夢資料庫遠端圖形介面如何呼叫Linux資料庫
- linux centos7安裝完後無法進入圖形介面LinuxCentOS
- Qt-跨平臺的C++圖形使用者介面應用程式框架(一)QTC++框架
- linux系統中firewalld防火牆管理工具firewall-config(GUI圖形使用者介面)Linux防火牆GUI
- Linux程式後臺執行實踐Linux
- 讓.py程式後臺執行(Linux)Linux
- XManager:xshell顯示圖形化介面
- Ubuntu無法進入圖形介面Ubuntu
- WSL安裝及配置圖形介面
- Python常用的圖形介面程式設計框架,你知道幾個?Python程式設計框架
- Ubuntu18.04中設定使用root使用者登入圖形介面Ubuntu
- [linux] 使用Screen後臺執行命令Linux
- linux qt程式root使用者執行,無法輸入中文LinuxQT