1、為什么需要遠程GUI服務
當運行一些數據挖掘、機器學習或者仿真程序時,往往希望看到圖表、統計結果、仿真效果圖;當在交叉編譯環境中,完成程序開發。如果這些程序或者開發環境安裝在服務器中,而服務器處於性能和效率的原因沒有安裝圖像化桌面,此時我們通過一些工具,實現遠程使用GUI程序。
2、原理介紹
2.1 X協議
Linux 本身是沒有圖形化界面的,圖形化界面系統在 Linux 中只是一種應用程序。和 Windows 不同。Windows 圖形界面是直接在系統內核中實現了(從 Windows 95 開始),是操作系統不可分割的一部分。目前,Linux 的圖形化界面,底層都是基於 X 協議。
X 協議由 X server 和 X client 組成:X server 管理主機上與顯示相關的硬件設置(如顯卡、硬盤、鼠標等),它負責屏幕畫面的繪制與顯示,以及將輸入設置(如鍵盤、鼠標)的動作告知 X client。X client (即 X 應用程序) 則主要負責事件的處理(即程序的邏輯)。
舉個例子,如果用戶點擊了鼠標左鍵,因為鼠標歸 X server 管理,於是 X server 就捕捉到了鼠標點擊這個動作,然后它將這個動作告訴 X client,因為 X client 負責程序邏輯,於是 X client 就根據程序預先設定的邏輯(例如畫一個圓),告訴 X server 說:“請在鼠標點擊的位置,畫一個圓”。最后,X server 就響應 X client 的請求,在鼠標點擊的位置,繪制並顯示出一個圓。
2.2 X11 Forwarding
許多時候 X server 和 X client 在同一台主機上,這看起來沒什么。但是, X server 和 X client 完全可以運行在不同的機器上,只要彼此通過 X 協議通信即可。於是,我們就可以做一些“神奇”的事情,比如像本文開頭談到的,在本地顯示 (X server),運行在服務器上的 GUI 程序 (X client)。這樣的操作可以通過 SSH X11 Forwarding (轉發) 來實現。
X11 中的 X 指的就是 X 協議,11 指的是采用 X 協議的第 11 個版本。
3、工具介紹
3.1 MobaXterm
MobaXterm 是一款開源、免費的、全功能終端軟件。它與 PuTTY 類似,但卻比 PuTTY 要強大得多,其中一個很實用的功能就是 MobaXterm 自帶 X Server。
本地機器采用 MobaXterm (自帶 X server) 連接遠程服務器。然后,在服務器上運行 GUI 程序 (即 X client),通過 SSH X11 Forwarding,轉發到本地 (Windows 機器上的X Server)。
3.2 Putty+Xming
另外一種工具就是Putty+Xming,Putty相當於SSH+終端,但是還需要獨立安裝X Server,也就是程序Xming,當然他的工作原理和MobaTerm類似。
Reference
https://www.cnblogs.com/ipaomi/p/7830778.html
http://blog.chinaunix.net/uid-30184041-id-4926167.html