遠程顯示(操作) 伺服器 GUI 程式(圖形化界面) (基於 X11 Forwarding + Centos + MobaXterm)

来源:http://www.cnblogs.com/ipaomi/archive/2017/11/14/7830778.html
-Advertisement-
Play Games

在做 數據分析(數據挖掘 或 機器學習)的時候,我們經常需要繪製一些統計相關的圖表,這些統計、繪圖的程式常常是跑在伺服器上的,可是伺服器出於性能和效率的考慮,通常都是沒有安裝圖形化界面的,於是這些統計、繪圖的程式在伺服器上壓根兒就跑不起來,或者無法直接顯示出來,這就很尷尬了!這裡咪博士教大家,如何通 ...


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

一、原理

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 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. MobaXterm

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

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

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

二、實戰

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 端),就可以看到相應的圖形化界面(視窗)

【原文鏈接】http://www.ipaomi.com/2017/11/09/遠程顯示操作-伺服器-gui-程式圖形化界面-基於-x11-forwarding-centos/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡述 簡單回顧並總結下不同的表連接語句有什麼異同之處以及一些概念。 建庫語句如下 由上代碼可知,分別創建了部門表和雇員表,雇員表和部門表是多對一的關係,技術部沒有雇員。 內連接 語法:inner join ... on ... inner可以省略。 概念:內連接查詢的結果是從兩個或兩個以上的表的組合 ...
  • 手工熱備(開庫狀態) 備份控制文件: alter database backup controlfile to '/u01/oradata/prod/con.bak1'; 備份數據文件(這裡用到pl/sql進行批處理,將查詢結果粘貼運行即可) beginfor i in (select tables ...
  • 1. 鎖類型 鎖是資料庫區別與文件系統的一個關鍵特性,鎖機制用於管理對共用資源的併發訪問。 InnoDB使用的鎖類型,分別有: 共用鎖(S)和排他鎖(X) 意向鎖(IS和IX) 自增長鎖(AUTO INC Locks) 1.1. 共用鎖和排他鎖 InnoDB實現了兩種標準的行級鎖:共用鎖(S)和排他 ...
  • [20171113]修改表結構刪除列相關問題3.txt--//維護表結構刪除欄位一般都是先ALTER TABLE <table_name> SET UNUSED (<column_name>);--//然後等空閑時候刪除列.ALTER TABLE <table_name> DROP UNUSED C ...
  • 前言: 前兩天接到領導的任務,將一個系統A的客戶數據同步到另一個系統B中,以後客戶錄入入口只有A系統,B系統不提供錄入入口,因為各種原因不能使用介面方式A系統和B系統直接交互同步,只能通過資料庫重A庫同步到B庫。原想通過觸發器直接些過去的,但在跨伺服器方面遇到種種問題,穩定性太差最終放棄,選擇使用發 ...
  • 最近 在搭建 簡易的 大數據 偽分散式環境(hadoop2.8+hive2.2+hbase1.2+sqoop1.4.6) 在 由sqoop 導數mysql數據到hive 時候發生以下錯誤:執行 命令目錄為 $sqoop_home/bin hive 的 metadata庫 使用的是 mysql(初始化 ...
  • 轉自CSDN: 在寫資料庫sql的時候,我們往往很關心該sql語句的執行效率,如下小技巧可以幫助程式員簡單快速的得到某條或某幾條sql的執行時間. ...
  • -- mysql查詢本季度 -- 今天 select * from ticket_order_detail where to_days(use_time) = to_days(now()); -- 7天 SELECT *FROM ticket_order_detail where DATE_SUB( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...