APP下载
报价宝  ›  科技  › 

Linux学习派:使用 MobaXterm 开启 linux 的远端桌面

报价宝 来源:baojiabao.com 发布时间:2019-11-24 18:55:00 10月16日更新
报价宝综合消息Linux学习派:使用 MobaXterm 开启 linux 的远端桌面

一、原理

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转发是使用你家厨房做披萨)

不理解也没关系,会用能达到目的就好了。

常用X Server有免费的Xming、收费的Xmanager(非常棒的Xshell终端软件也是他家出的,家庭教育使用者免费使用) 等;上述需要手动配置,然而有了MobaXterm,一切都变得超级简单!

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 no

X11Forwarding yes

#X11DisplayOffset 10

X11UseLocalhost no

重启 sshd 服务

sudo systemctl restart sshd.service

2. 本地 (Windows 端)

下载并安装 MobaXterm

远端连线服务器

注意到 X11-forwarding 和 DISPLAY 这两项都打上了绿色的勾,代表设定成功了。

3. 验证

在服务器端执行一个 GUI 程式,如

xclock

这时候,你在本地 (Windows 端),就可以看到相应的图形化界面(视窗)

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 汽车价格 小米手机价格 华为手机价格 红米手机价格 降噪耳机价格