有些LINUX服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,那么图形化程序在服务器上压根儿就跑不起来,或者无法直接显示出来,这就很尴尬了!那么如何解决这个问题呢?可以基于X11 Forwarding技术 + MobaXterm 工具,就可以轻松搞定,似不似很简单?

原理介绍

2.1 X协议

Linux 本身是没有图形化界面的,所谓的图形化界面系统只不过中 Linux 下的应用程序。这一点和 Windows 不一样。Windows 从Windows 95 开始,图形界面就直接在系统内核中实现了,是操作系统不可或缺的一部分。Linux 的图形化界面,底层都是基于 X 协议。

X 协议由 X server 和 X client 组成:

l X server 管理主机上与显示相关的硬件设置(如显卡、硬盘、鼠标等),它负责屏幕画面的绘制与显示,以及将输入设置(如键盘、鼠标)的动作告知 X client。

l 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 个版本。

2.3 MobaXterm

那 MobaXterm 又是什么鬼?MobaXterm 是一款开源、免费的、全功能终端软件。它与 PuTTY 类似,但却比 PuTTY 要强大得多,其中一个很实用的功能就是 MobaXterm 自带 X Server。这样我们就不用劳神地去想怎么在 Windows 上启动 X server 了。

小结一下,整个实现逻辑就是:

本地机器采用 MobaXterm (自带 X server) 连接远程服务器。然后,在服务器上运行 GUI 程序 (即 X client),通过 SSH X11 Forwarding,转发到本地 (Windows 机器上)。

实战介绍

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.1 Windows下连接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.3 SSH连接服务器

3.2.4 执行xclock程序

已经弹出xclock图形界面了,似不似很简单,似不似很Easy,那就一起实践下吧:)

 

linux服务器通过X11实现图形化界面显示 1 背景描述的更多相关文章

  1. linux服务器通过X11实现图形化界面显示

    1 背景描述 有些LINUX服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,那么图形化程序在服务器上压根儿就跑不起来,或者无法直接显示出来,这就很尴尬了!那么如何解决这个问题呢?可以基于X1 ...

  2. Windows/Linux下磁盘使用的图形化工具简介

    Windows/Linux下磁盘使用的图形化工具简介   如何以图形界面查看磁盘及分区的大小及剩余容量呢?今天我为大家介绍两款Windows/Linux下磁盘使用的图形化工具分别是Spacesniff ...

  3. Linux配置VNC实现远程图形化操纵

    问题描述 有些时候需要用到图形化,其实可以通过其他途径实现.但是懒惰的就喜欢VNC,总的老说都是需要图形组件的 问题解决 在Centos测试 一.图形化的Linux 01.安装 rpm  ivh vn ...

  4. Linux性能分析工具与图形化方法

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:赵坤|腾讯魔王工作室后台开发工程师 在项目开发中,经常会遇到程序启动时间过长.CPU使用率过高等问题,这个时候需要依靠性能分析工具来 ...

  5. 2018.4.21 如何正确快速安装/卸载云服务器Centos7安装GUI图形化界面GNOME桌面环境

    为云服务哦Centos安装图形化界面GNOME .KDE 1.开始前先验证一下能不能上网 ping www.baidu.com 2.接下来开始安装X(X Window System),命令为 yum ...

  6. CentOS6.5配置python开发环境之一:CentOS图形化界面显示

    这两天在配置centos系统下python的开发环境和工具. 刚用centos,做做记录可以方便以后有需要的人...查资料确实挺麻烦的 centos6.5 sublime3 python27 subl ...

  7. linux修改主机名,关闭图形化界面,绑定ip地址,修改ip地址

    1关闭图形化界面 vi /etc/inittab 改成id:3:initdefault: 注意:不要选0或6 2.修改主机名 vi /etc/sysconfig/network 修改即可 3,修改ip ...

  8. 云服务器 ECS Linux 安装 VNC Server 实现图形化访问配置说明

    阿里云官方公共 Linux 系统镜像,基于性能及通用性等因素考虑,默认没有安装 VNC 服务组件.本文对常见操作系统下的 VNC Server 安装配置进行简要说明. 本文中仅讨论VNC的安装,关于图 ...

  9. 自学linux(安装系统,图形化界面,安装chrome)STEP1

    1. 下载虚拟机VMware并安装 破解版: https://www.xitmi.com/2417.html 2. 下载centos7,6据说已经找不到了? 阿里云镜像: https://mirror ...

  10. 在Linux下,使用Xmanager图形化显示

    linux在安装Oracle时,需要图形化展示,本博客将使用xclock显示钟表进行测试 首先需要下载Xmanager网址:http://www.xshellcn.com/ 安装之后 打开之后,点击t ...

随机推荐

  1. 编译WorldWindJavav2.1.0中的ApplicationTemplate.java文件时有时报出“Exception in thread "main" java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”错误的解决办法

    1 问题 编译WorldWindJavav2.1.0中的ApplicationTemplate.java文件时有时报出如下错误: Exception in thread "main" ...

  2. OpenMMLab AI实战营 第七课笔记

    OpenMMLab AI实战营 第七课笔记 目录 OpenMMLab AI实战营 第七课笔记 import os import numpy as np from PIL import Image im ...

  3. neo4j存储数据-图数据库

    1. 简介 本文主要介绍neo4j是如何将图数据保存在磁盘上的,采用的是什么存储方式.分析这种存储方式对进行图查询/遍历的影响. 2. 图数据库简介 生产环境中使用的图数据库主要有2种,分别是带标签的 ...

  4. Golang-文件处理11

    http://c.biancheng.net/golang/102/ Go语言自定义数据文件 对一个程序非常普遍的需求包括维护内部数据结构,为数据交换提供导入导出功能,也支持使用外部工具来处理数据.由 ...

  5. 项目PMP之六项目进度管理

    项目PMP之六--项目进度管理   一.定义:用于沟通和管理相关方期望的工具,可作为报告绩效的基础,说明项目的交付时间和方式 迭代型进度计划(敏捷模式):接受存在未完成项,滚动式规划管理 按需进度计划 ...

  6. Tesseract-OCR使用有感

    这玩意儿就只有一个Tesseract.dll 就算有其它的加上x64目录下的另外两个dll leptonica-1.80.0.dll  tesseract41.dll也不过几兆而已,但是 但是 但是 ...

  7. 两种方式让你用Python轻松在RDKX5上部署推理

    作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 宿主机环境:WSL2-Ubuntu22.04+Cuda12.6.D-Robotics-OE 1.2.8.Ubun ...

  8. Redis缓存异常及解决方案

    本文分享自天翼云开发者社区<Redis缓存异常及解决方案>,作者:l****n 本文向读者解释了Redis使用过程中,数据不一致.缓存雪崩.缓存击穿和缓存穿透等问题的定义,并给出对应的解决 ...

  9. 大模型背后的向量魔法:Embedding技术初探

    本文原本是2022年写的,然而一直没有完善,自从LLM火起来之后,NLP领域的技术更新很快,本文只是大概介绍了Embedding相关的基础知识,具体应用接下来会在博客更新发布. 前言 又是很长一段时间 ...

  10. EMR集群信息查看-Hive

    一.日志 1.hivemetastore日志 简介:查看运行情况,其它组件会通过hivemetastore获取表信息 tail -f /data/emr/hive/logs/hadoop-hiveme ...