什麼是X11-forwarding

遠程顯示(操做) 服務器 GUI 程序(圖形化界面) (基於 X11 Forwarding + Centos + MobaXterm)vim

 

在作 數據分析(數據挖掘 或 機器學習)的時候,咱們常常須要繪製一些統計相關的圖表,這些統計、繪圖的程序經常是跑在服務器上的,但是服務器出於性能和效率的考慮,一般都是沒有安裝圖形化界面的,因而這些統計、繪圖的程序在服務器上壓根兒就跑不起來,或者沒法直接顯示出來,這就很尷尬了!這裏咪博士教你們,如何經過 MobaXterm 和 X11 Forwarding 遠程顯示服務器上的圖形化界面(GUI 程序)。服務器

1、原理ssh

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. X11 Forwarding3d

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

許多時候 X server 和 X client 在同一臺主機上,這看起來沒什麼。可是, X server 和 X client 徹底能夠運行在不一樣的機器上,只要彼此經過 X 協議通訊便可。因而,咱們就能夠作一些「神奇」的事情,好比像本文開頭談到的,在本地顯示 (X server),運行在服務器上的 GUI 程序 (X client)。這樣的操做能夠經過 SSH X11 Forwarding (轉發) 來實現。server

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

3. MobaXterm

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

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

本地機器採用 MobaXterm (自帶 X server) 鏈接遠程服務器。而後,在服務器上運行 GUI 程序 (即 X client),經過 SSH X11 Forwarding,轉發到本地 (Windows 機器上)。

2、實戰

1. 服務器端

安裝 X11 Forwarding 相關軟件

複製代碼

1 sudo yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock

啓用 X11 Forwarding

複製代碼

1 sudo vim /etc/ssh/sshd_config

將 X11Forwarding 和 X11UseLocalhost 前面的 # 去掉,並將 X11Forwarding 設置爲 yes,X11UseLocalhost 設置爲 no

複製代碼

1 #AllowAgentForwarding yes
2 #AllowTcpForwarding yes
3 #GatewayPorts no
4 X11Forwarding yes
5 #X11DisplayOffset 10
6 X11UseLocalhost no

重啓 sshd 服務

複製代碼

1 sudo systemctl restart sshd.service

2. 本地 (Windows 端)

下載並安裝 MobaXterm

https://pan.baidu.com/s/1eS5xdYU

遠程鏈接服務器

注意到 X11-forwarding 和 DISPLAY 這兩項都打上了綠色的勾,表明設置成功了。

3. 驗證

在服務器端運行一個 GUI 程序,如

1 xclock

這時候,你在本地 (Windows 端),就能夠看到相應的圖形化界面(窗口)

相關文章
相關標籤/搜索