1. 程式人生 > 其它 >linux伺服器通過X11實現圖形化介面顯示 1 背景描述

linux伺服器通過X11實現圖形化介面顯示 1 背景描述

有些LINUX伺服器出於效能和效率的考慮,通常都是沒有安裝圖形化介面的,那麼圖形化程式在伺服器上壓根兒就跑不起來,或者無法直接顯示出來,這就很尷尬了!那麼如何解決這個問題呢?可以基於X11 Forwarding技術+ MobaXterm工具,就可以輕鬆搞定,似不似很簡單?

2原理介紹

2.1X協議

Linux本身是沒有圖形化介面的,所謂的圖形化介面系統只不過中Linux下的應用程式。這一點和Windows不一樣。Windows從Windows 95開始,圖形介面就直接在系統核心中實現了,是作業系統不可或缺的一部分。Linux的圖形化介面,底層都是基於X協議。

X協議由X server和X client組成:

lX server管理主機上與顯示相關的硬體設定(如顯示卡、硬碟、滑鼠等),它負責螢幕畫面的繪製與顯示,以及將輸入設定(如鍵盤、滑鼠)的動作告知X client。

lX client (即X應用程式)則主要負責事件的處理(即程式的邏輯)。

舉個例子,如果使用者點選了滑鼠左鍵,因為滑鼠歸X server管理,於是X server就捕捉到了滑鼠點選這個動作,然後它將這個動作告訴X client,因為X client負責程式邏輯,於是X client就根據程式預先設定的邏輯(例如畫一個圓),告訴X server說:“請在滑鼠點選的位置,畫一個圓”。最後,X server就響應X client的請求,在滑鼠點選的位置,繪製並顯示出一個圓。

2.2X11 Forwarding

這麼繞,有啥意義呢?當然有!

許多時候X server和X client在同一臺主機上,這看起來沒什麼。但是,X server和X client完全可以執行在不同的機器上,只要彼此通過X協議通訊即可。於是,我們就可以做一些“神奇”的事情,比如像本文開頭談到的,在本地顯示(X server),執行在伺服器上的GUI程式(X client)。這樣的操作可以通過SSH X11 Forwarding (轉發)來實現。

X11中的X指的就是X協議,11指的是採用X協議的第11個版本。

2.3MobaXterm

那MobaXterm又是什麼鬼?MobaXterm是一款開源、免費的、全功能終端軟體。它與PuTTY類似,但卻比PuTTY要強大得多,其中一個很實用的功能就是MobaXterm自帶X Server。這樣我們就不用勞神地去想怎麼在Windows上啟動X server了。

小結一下,整個實現邏輯就是:

本地機器採用MobaXterm (自帶X server)連線遠端伺服器。然後,在伺服器上執行GUI程式(即X client),通過SSH X11 Forwarding,轉發到本地(Windows機器上)。

3實戰介紹

3.1伺服器端(LINUX7.x)

3.1.1修改SSH配置

1 2 3 4 5 6 7 [root@linux-template-7 ~]# cat /etc/ssh/sshd_config X11Forwarding yes X11UseLocalhost no -- 禁止將X11轉發請求繫結到本地迴環地址上 AddressFamily inet -- 強制使用IPv4通道

3.1.2重啟SSH服務

1 service ssh restart

3.2.1Windows下連線Linux的ssh工具—MobaXterm

作為一個Windows作業系統使用者,如果想要連線Linux伺服器來進行檔案之間的傳送,那麼需要一個Secure Shell軟體(簡稱SSH的)。
MobaXterm,是一款增強型終端、X伺服器和Unix命令集(GNU/ Cygwin)封裝在一個單一的行動式exe檔案。MobaXterm可以開啟多個終端視窗,以最新的X伺服器為基礎的X.Org,可以輕鬆地來試用Unix / Linux上的GNU Unix命令。這樣一來,我們可以不用安裝虛擬機器來試用虛擬環境,然後只要通過MobaXterm就可以使用大多數的linux命令。
它不僅可以像PuTTY一樣通過SSH連線Raspberry Pi等開源硬體,並且還能:

  • 內建多標籤和多終端分屏
  • 內建SFTP檔案傳輸
  • 內建X server,可遠端執行X視窗程式
  • 直接支援VNC/RDP/Xdmcp等遠端桌面
  • 預設的UTF-8編碼
  • 更加友好的串列埠連線設定
  • 操作更明確,更少的“神祕技巧”

什麼是X11

X Window System 常被簡稱為X11或X,其功能包括視窗的繪製、移動,以及與滑鼠、鍵盤等輸入裝置的互動。相信很多新手都知道startx這個命令,沒有X11的話就只能對著黑乎乎的螢幕敲命令了。
它採用C/S模型:一個X server 和多個應用程式(client)通訊。server接收client的請求繪製視窗,並將來自滑鼠、鍵盤等裝置的輸入傳遞給client。
X server和client可以位於同一計算機上,就類似於平時使用的Windows作業系統;當X server和client不在同一計算機時,使用本地的X server 進行繪製、互動,就變成了遠端桌面。
舉個例子:前者是你在披薩店點了一份披薩,店員在你旁邊幫你做好拿給你(這家店相當於同一臺計算機);後者是你在網上叫了一份披薩,店員接單後到你家幫你做了一份披薩(注意:VNC是使用店裡廚房,做好給你送過來;X轉發是使用你家廚房做披薩)
不理解也沒關係,會用能達到目的就好了。Via
常用X Server有免費的Xming、收費的Xmanager(非常棒的Xshell終端軟體也是他家出的,家庭教育使用者免費使用) 等;上述需要手動配置,然而有了MobaXterm,一切都變得超級簡單!

軟體可以通過官網進行下載:

MobaXterm官網:https://mobaxterm.mobatek.net/

3.2.3SSH連線伺服器

3.2.4執行xclock程式

已經彈出xclock圖形介面了,似不似很簡單,似不似很Easy,那就一起實踐下吧:)