赞
踩
有些LINUX服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,那么图形化程序在服务器上压根儿就跑不起来,或者无法直接显示出来,比如,在做 jmeter压测时,我们一般在linux服务器上通过命令行模式运行,如果中途需要GUI模式调试脚本,怎么办呢?这就很尴尬了!那么如何解决这个问题呢?可以基于X11 Forwarding技术 + MobaXterm 工具,就可以轻松搞定远程linux服务器显示图形化界面(GUI 程序),似不似很简单?
2.1X协议
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 的请求,在鼠标点击的位置,绘制并显示出一个圆。
什么是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 进行绘制、交互,就变成了远程桌面
常用X Server有免费的Xming、收费的Xmanager(非常棒的Xshell终端软件也是他家出的,家庭教育用户免费使用) 等;上述需要手动配置,然而有了MobaXterm,一切都变得超级简单!
2.22.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.3MobaXterm
MobaXterm 是一款全功能终端软件,其中一个很实用的功能就是 MobaXterm 自带 X Server
MobaXterm 安装使用教程:全能终端神器—MobaXterm,代替secureCRT、Putty、telnet、xshell..._baidu_31295661的博客-CSDN博客
本地机器采用 MobaXterm (自带 X server) 连接远程服务器。然后,在服务器上运行 GUI 程序 (即 X client),通过 SSH X11 Forwarding,转发到本地 (Windows 机器上)。
打开MobaXterm时,一般linux服务器上的X11 Forwarding功能是关闭的,
如下图 X11 Forwarding :X ,代表X11 Forwarding功能没启用
3.1.1安装 X11 Forwarding 相关软件,输入命令:
sudo yum install xorg-x11-xauth.x86_64 xorg-x11-server-utils.x86_64 dbus-x11.x86_64
3.1.2启用 X11 Forwarding :sudo vim /etc/ssh/sshd_config
将 X11Forwarding 和 X11UseLocalhost 前面的 # 去掉,
并将 X11Forwarding 设置为 yes,
X11UseLocalhost 设置为 no
- #AllowAgentForwarding yes
- #AllowTcpForwarding yes
- #GatewayPorts no
- X11Forwarding yes
- #X11DisplayOffset 10
- X11UseLocalhost no --禁止将X11转发请求绑定到本地回环地址上
3.1.3重启 sshd 服务:sudo systemctl restart sshd.service
注到 X11-forwarding 和 DISPLAY 这两项都打上了绿色的勾,代表设置成功了。
本地 Windows 端,就可以看到相应的图形化界面:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。