远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
来源:互联网 发布:ubuntu双系统磁盘分区 编辑:程序博客网 时间:2024/06/03 17:41
在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计、绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计、绘图的程序在服务器上压根儿就跑不起来,或者无法直接显示出来,这就很尴尬了!这里咪博士教大家,如何通过 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 相关软件
sudo yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock启用 X11 Forwarding
sudo vim /etc/ssh/sshd_config
将 X11Forwarding 和 X11UseLocalhost 前面的 # 去掉,并将 X11Forwarding 设置为 yes,X11UseLocalhost 设置为 no
#AllowAgentForwarding yes#AllowTcpForwarding yes#GatewayPorts noX11Forwarding yes#X11DisplayOffset 10X11UseLocalhost no重启 sshd 服务
sudo systemctl restart sshd.service
2. 本地 (Windows 端)
下载并安装 MobaXterm
https://pan.baidu.com/s/1eS5xdYU
远程连接服务器
注意到 X11-forwarding 和 DISPLAY 这两项都打上了绿色的勾,代表设置成功了。
3. 验证
在服务器端运行一个 GUI 程序,如
xclock
这时候,你在本地 (Windows 端),就可以看到相应的图形化界面(窗口)
【原文链接】http://www.ipaomi.com/2017/11/09/远程显示操作-服务器-gui-程序图形化界面-基于-x11-forwarding-centos/
- 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
- ssh图形化连接远程主机时报错X11 forwarding request failed on channel 0
- Digitalocean VPS centos 7安装图形化界面KDE和VNC实现远程图形化操作
- 显示远程GUI程序
- GUI图形化界面
- GUI图形化界面
- Pycharm远程调用Centos GUI程序,显示在windows上
- mobaxterm 远程登录服务器工具
- 使用x11 forwarding显示X Windows
- mac 终端显示远程Linux、Unix 上的图形化程序界面
- java16-GUI图形化界面
- 15 图形化界面GUI
- GUI:图形化界面编程
- 使用SSH的X11特性远程运行X界面程序
- X11远程显示
- 【Linux】Xshell 远程 Linux 显示图形化界面
- Centos 安装后没有图形化操作界面 解决方案
- 图形化界面 远程 linux
- cortex A8处理器启动分析一引导代码BL0
- Zookeeper运维常用四字命令
- java自定义异常以及异常类
- 使用dom4j遍历xml 文档快速入门
- 习题6.5
- 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
- Zookeeper介绍(一)——背景知识
- 用break退出方法和跑异常的退出递归
- 如何打败拖延症?
- 用C#去获取注册表里的值
- Zookeeper介绍(二)——Zookeeper概述
- 【第六届蓝桥杯】隔行变色
- 一.08异常
- 华为交换机设置vlan trunk口 并保存设置