N神教你远程访问LINUX桌面
扫描二维码
随时随地手机看文章
什么是远程桌面?通俗的讲,就是将其它机器的桌面系统通过网络连接显示到本地,然后在本地操控远程机器。
这样说其实有点过于简单。远程桌面访问的实现,一般由三部分组成:远程机器开启相关的服务,使得客户端可以通过网络连接并提供相关服务;其次是需要借助网络通信来传递数据;最后客户端也就是本地机器需要相应的软件来实现显示及操控。说白了,这就是一个经典的C/S架构,属于远程控制里的一个具体应用。
黑客们费尽心思,要在你的电脑上种个木马,就是为了好远程监控你的电脑,这样子看来太恐怖了!然而技术本身并无过错,远程控制的另一面,当然也能帮我们解决许多问题。设想一个这样的场景,你作为企业里的管理员,管理着几十甚至上百台电脑,这些电脑分布在不同的位置,如果需要维护的话,光是跑腿就够你受的了,这时候远程控制或者远程桌面就派上用场了。另外在嵌入式应用领域,许多设备甚至没有安装显示器、键盘等周边设备,在首次安装后就将它们撤去了。
笔者手头有个树莓派(RPI2),作为服务器常年运行着,为了不占地,干脆直接将显示器、键盘移除了。碰到偶尔需要维护或使用怎么办,远程桌面帮你搞定一切!
常年运行的RPI2,运行的是RASPBIAN系统,只连接了网络和电源。老外喜欢叫这种配置为HEADLESS,最清爽的配置方式。
前面提到,要实现远程桌面访问,有三个要素:服务、网络、客户端。对于网络来说,基本就是TCP/IP通信,现在的操作系统内部都已内置相关协议栈,不需要过多考虑。支持远程桌面的软件很多,这里介绍几种常见的类型,一个是VNC,另一个就是LINUX系统自带的X-WINDOWS。VNC想必大家耳熟能详,至于X-WINDOWS,可能有人知道这是LINUX系统上最常用的底层GUI,其实X-WINDOWS本身就是基于网络通信协议设置的,只不过大部分情况下,客户与服务端都在同一机器上实现,遮掩了X-WINDOWS的本质。
先看VNC吧,RPI的系统上为了方便大家实现HEADLESS操作,早就预置了VNC SERVER。
不过默认没有启动,所以只要启动VNC SERVER就可以了。
当然也可以将vncserver的启动命令加入到自启动脚本里,实现开机启动。
注意看输出的信息,这个服务器是REALVNC的产品,还有其它公司的VNC产品,原理一样,只不过不同的产品加入了各公司自己的特色功能而已。注意最后一行信息,这是告诉我们,在客户端里访问时指定的地址。
接下来使用客户端软件实现远程访问,使用VNC VIEWER,版本如下
点击FILE/NEW,出现新建对话框
主要参数包括VNC SERVER,加密方式等。
接下来就会连接RPI,弹出输入用户登陆信息的对话框
然后稍等片刻,桌面就出来了,这是RPI最新的PIXEL桌面,有没有焕然一新的感觉!
VNC就是一个傻瓜式的工具,简单配置,一切就都搞定!不过VNC的速度挺快,比后面介绍的东西效果要好。
跑个OPENGL DEMO来看看
还不错的效果。
其实咱也可以使用X-WINDOWS来实现LINUX的远程桌面。
X窗口系统(X Window System,也常称为X11或X)是一种以位图方式显示的软件窗口系统。最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X窗口系统通过软件工具及架构协议来创建操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X窗口系统为基础建构成的。
由于X只是工具包及架构规范,本身并无实际参与运作的实体,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的实体,始可称为实现体。目前依据X的规范架构所开发撰写成的实现体中,以X.Org最为普遍且最受欢迎。X.Org所用的协议版本,X11,是在1987年9月所发布。现在最新的版本是Xorg 7.7,UNIX/LINUX家族广泛使用它作为桌面系统。
X WINDOWS由X SERVER和X CLIENT组成。X采用C/S的架构模型,由一个X服务器与多个X客户端程序进行通讯,服务器接受对于图形输出(窗口)的请求并反馈用户输入(键盘、鼠标、触摸屏),服务器可能是一个能显示到其他显示系统的应用程序,也可能是控制某个PC的视频输出的系统程序,也可能是个特殊硬件。服务器和客户端之间的通信协议的运作对计算机网络是透明的:客户端和服务器可以在同一台计算机上,也可以不是,或许其架构和操作系统也不同,但都能运行。客户机和服务器还能够使用安全连接在互联网上安全地通讯。[!--empirenews.page--]
这一段话估计不懂X工作原理的人看了是云里雾里,不知所云。解释一下,X SERVER就是负责显示,X CLIENT就是负责请求。什么意思呢,假如要画一个圆,X CLIENT(应用程序)说,给咱画个圆,向谁说呢,当然是向X SERVER说。X SERVER听到后,噢,画个圆么,咱来画个圆,就是这么简单,不过不同的是,X SERVER与X CLIENT是通过网络来实现通信的,所以,如果把X SERVER放到另外一台机器上,就实现了远程显示。
X SERVER的实现,大都是直接在LINUX系统上,不过也有人将它在WINDOWS平台上实现了,这就是XMING。Xming 是一个在 Microsoft Windows 操作系统上运行 X Window System 的 自由软件。其开源版本放到了SOURCEFORGE上供大家下载。
安装好XMING后,XMING就是一个X SERVER,可以接受来自网络的X CLIENT请求,在WINDOWS平台上绘制GUI界面。XMING提供了一个XLAUNCH程序来对X SERVER进行配置,比如指定应用程序是使用独立的窗口还是使用一个窗口
也可以指定连接后是否自动打开相关的应用程序,默认不打开程序。
设置完成后,保存设置
XMING安装之后常驻后台,等待X11的转发,因为X CLIENT不会自动转发X11请求,这个就要借助终端软件了,比如PUTTY就有这个功能。打开PUTTY,做如下设置
勾选X11 FORWARDING,让PUTTY转发X11请求,由于当前机器上实际只有一个X SERVER,所以后面的X DISPLAY LOCATION倒是可以不写。
这样配置好了之后,就可以打开图形程序了。
看,远程桌面上的程序跳倒咱WINDOWS 10桌面上来了,很神奇吧。只不过glx的性能很渣,与VNC相比完全不是一个档次。
不过这东西对网络吞吐要求高,就跑这么个简单的程序,看下WINDOWS下的网络通信量,如下图
如果是跑全屏的话,就更高了,看来GIGABIT网络还是很有必要啊。
是不是觉得这样很麻烦,其实也有软件已经把这一切都已经集成了,这个软件名叫MOBAXTERM。
这个软件提供了丰富的配置选项,如X11,SSH等属性的设置,如下
另外,该软件还支持丰富的桌面类型,如LXDE,XFCE的选择,如
新版的RASPBIAN也不知道是用的什么底层,这里选择LXDE桌面环境,然后连接
不错,居然就以LXDE的方式显示了。桌面与LXDE一样
MOBAXTERM实际就是使用XMING作为底层,所以性能与XMING应该一致,也跑个GLX看下效果。
频率差不多也是10帧的样子。
体验过VNC,XMING与MOBAXTERM之后,是不是有种冲动,要把显示器与键盘扔掉了?没有,没有就对了嘛,毕竟,远程桌面还是不能代替桌面的。
比如要玩游戏,这个不行吧,比如要搞图形图像处理,这个也不行!一则远程桌面对网络带宽有要求,建议GIGABIT网络下运行更爽;其次远程桌面目前的GPU加速功能不行,据说在LINUX桌面下运行远程桌面效果要好,有待继续体验。
不过我觉得很多嵌入式LINUX产品的前期体验,都可以使用远程桌面来先睹为快,省去了连键盘、显示器、鼠标的麻烦,真正涉及到图形、图像处理或其它需要的场合,再搭建好平台,好好体验吧!
本文系21ic原创,未经许可严禁转载