Linux和Windows间的远程桌面访问

在Windows上面,我们都用过系统自带的远程桌面连接或者TeamViewer这样的工具,可以方便的让我们用图形化方式远程操作其他计算机。但是在Linux上,我们一般都是使用SSH来操作终端。那么在Linux上有没有一些工具可以让我们像Windows那样用图形化的方式来访问桌面呢?答案当然是有的,这就是这篇文章要介绍的。

远程桌面连接主要使用两种协议,第一种就是微软在Windows上的RDP(Remote Desktop Protocol)协议,第二种就是VNC(Virtual Network Console)协议。从使用效果上来说,VNC协议更加优秀,所以如果有条件的话我还是推荐大家使用使用VNC协议的工具。下面将会逐一介绍。

RDP协议

rdesktop

首先要介绍的一个工具是Rdesktop,它实现了RDP协议,允许我们在Linux系统上远程登录Windows系统。以深度系统为例,安装Rdesktop使用下面的命令。

sudo apt install rdesktop

安装完成之后,使用类似下面的命令来访问远程Windows系统。

rdesktop -g 1440x900 -P -z -x l -r sound:off -u windowsuser 192.168.31.100:3389

登录之后界面类似下面这样。当然对应的Windows系统别忘了开启允许远程连接到本计算机,否则用什么客户端也是无法连接的。如果连接有问题,在Windows上取消“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”选项。

img

rdesktop

下面简单解释一下这些参数意义。

参数 意义
-g 后面代表要使用的分辨率
-P 启用位图缓存
-z 启用RDP数据流压缩
-x l 使用局域网级别的图像质量
-r sound:off 关闭声音
-u windowuser 指定要使用的用户
IP地址 要连接的计算机的IP地址和端口号

特别提一下,如果希望使用全屏方式来远程登录,可以在-g参数那里使用100%。如果需要更详细的使用说明,请用man rdekstop查询自带的帮助页面。

这里还是推荐ArchWiki这个网站,虽然它是ArchLinux的百科网站,但是很多知识是完全可以通用到其他Linux系统上的。我这里也参考了ArchWiki的相关内容wiki.archlinux.org/index.php/Rdesktop

grdesktop

当然,命令行方式使用有些时候还是比较麻烦的。对于Rdesktop来说自然也有对应的图形化前端工具,grdesktop就是一个不错的工具,它是Gnome桌面的远程登录前端。我们可以使用下面的命令来安装。

sudo apt install grdesktop

打开是一个类似这样的界面,输入相关信息然后连接即可。

img

grdesktop

连接之后类似下图。

img

grdesktop

krdc

krdc是KDE桌面的rdp和vnc连接工具。我们使用下面的命令安装krdc.

sudo apt install krdc

打开之后如图所示。使用时需要先输入要连接的计算机地址,然后按回车在弹出的对话框中进行进一步设置。

img

krdc

连接成功之后主窗口右半部分应该会显示远程桌面的内容,但是不知道什么情况我的krdc始终没办法连接成功,所以没办法截图了。

xrdp

前面的rdesktop工具可以让我们在Linux系统上远程桌面登录Windows系统,如果反过来,希望在Windows上用RDP协议远程登录到Linux系统,就比较麻烦了。这就需要xrdp来帮助我们了。它是一个RDP服务端,可以让我们用远程桌面方式登录到Linux系统。

首先要安装xrdp。

sudo apt install xrdp

然后启动xrdp服务。

sudo systemctl enable xrdp
sudo systemctl start xrdp

现在你应该可以使用Windows自带的远程桌面工具来连接到Linux系统了。

img

xrdp

输入用户名和密码之后稍等片刻,应该就会显示出Linux的桌面了。

img

xrdp访问桌面

好了,以上就是关于使用RDP协议的一些工具的介绍。从截图上,我们可以看到,RDP协议的一个缺点,就是如果平台不同的话,显示效果其实是很差的。我这还是局域网的两台电脑,假如间隔距离更长,效果会更差。RDP协议还是在Windows间使用比较适合。跨平台的话,还是下面介绍的VNC协议更加强大。

VNC

tigervnc和x11vnc

先来说说Linux上的VNC服务端,比较常用的就是tigervnc和x11vnc。x11vnc可以让远程访问者控制本地的实际显示器,而tigervnc既可以远程控制实际显示器,还可以控制平行独立于当前物理显示器的虚拟显示器。不过由于在我的笔记本上测试tigervnc没有成功,所以这里我只介绍一下x11vnc。如果想要了解tigervnc的详细信息,可以参考一下ArchWiki TigerVNC

首先用下面的命令安装x11vnc。

sudo apt install x11vnc

安装好之后就可以启动了,启动也很简单,-passwd参数指定密码,-forever参数指定这个会话始终开启。

x11vnc -passwd PASSWORD -display :0 -forever

开启之后就可以使用客户端进行连接了,默认端口号是5900,会在终端中显示出来。

Linux上的VNC客户端

Linux上的VNC客户端软件选择就比较丰富了,各大Linux桌面系统都推出了自己的VNC客户端。我们可以根据自己需要来使用。

首先介绍一下Vinagre,这是Gnome桌面环境的远程桌面客户端,同时支持SSH、RDP和VNC协议。使用下面的命令安装Vinagre。

sudo apt install vinagre

软件打开的界面如图所示。

img

Vinagre建立连接

这是连接效果图,这是用VNC协议连接到我的Windows系统。

img

Vinagre

然后是KRDC,这是前面介绍的KDE桌面的远程连接软件,它同时支持RDP和VNC协议。这是它使用VNC的连接效果图。

img

KRDP

最后是Remmina,它也同时支持RDP和VNC协议。我们可以用下面的命令安装它。

sudo apt install remmina

下面是它的连接效果图。

img

Remmina

Windows上的VNC软件

前面介绍了Linux上一些支持VNC协议的软件。在Windows上同样有一些支持VNC协议的软件,常用的有RealVNC(收费)、UltraVNC(免费)和TightVNC(免费),它们同时既是服务端又是客户端。这三个软件我都试了一下,感觉免费的TightVNC效果不错。收费的RealVNC和TeamViewer差不多,主要功能都在云端协作这方面,如果只是单纯的远程连接,TightVNC完全够用了,这是TightVNC的下载链接

下面是几张RealVNC的截图,有兴趣的同学可以注册个账户试用30天。

img

RealVNC

img

RealVNC服务端和客户端

然后来介绍一下TightVNC。安装好之后开始菜单会多出几个菜单项。首先点击Start TightVNC Service启动服务,然后系统托盘会多出一个图标,这就是TightVNC的图标。然后双击它打开设置。最主要的就是端口号和密码了,其实端口号也不需要设置,主要就是密码。设置完成后点击OK即可。

img

TightVNC服务器设置

如果需要远程登录其他系统,使用TightVNC Viewer。打开之后如图所示,按照IP地址::端口号的格式输入地址,然后输入密码即可。主要这里是双冒号,不是单冒号。

img

TightVNC Viewer

连接成功之后如图所示。

img

TightVNC Viewer连接

好了,以上就是Linux和Windows上RDP和VNC的一些软件的介绍和使用,下面再提供

8种最佳访问远程Linux桌面的工具

在本文中,我们将共享一个用于访问远程Linux桌面的列表软件:列表以VNC应用程序开始。

远程桌面协议( RDP )是Microsoft开发的专有协议,因此可以访问远程桌面计算机。 它为用户提供了一个图形界面,通过网络连接连接到另一台/远程计算机。 FreeRDPRDP的免费实现。

RDP以客户机/服务器模式运行,其中远程计算机必须安装并运行RDP服务器软件,并且用户使用RDP客户机软件连接到它,以管理远程桌面计算机。

在本文中,我们将共享一个用于访问远程Linux桌面的列表软件:列表以VNC应用程序开始。

VNC ( 虚拟网络计算 )是一种服务器 – 客户端协议,允许用户帐户通过使用图形用户界面 ( GUI )提供的资源远程连接和控制远程系统。

1. TigerVNC

TigerVNC是一款免费,开源,高性能,平台无关的VNC实现。 它是一个客户端/服务器应用程序,允许用户启动远程机器上的图形应用程序并与其进行交互。

与直接连接运行时桌面的其他VNC服务器(如VNC XVino)不同, tigervnc-vncserver使用不同的机制为每个用户配置独立的虚拟桌面。

它能够运行3D和视频应用程序,并尝试在所支持的各种平台上尽可能保持一致的用户界面并重新使用组件。 此外,它还通过许多实现高级身份验证方法和TLS加密的扩展来提供安全性。

了解如何在CentOS 7中安装和配置VNC服务器

2. RealVNC

RealVNC提供跨平台,简单和安全的远程访问软件。 它使用VNC ConnectVNC Viewer等产品开发VNC屏幕共享技术。 VNC连接使您能够访问远程计算机,提供远程支持,管理无人值守系统,共享对集中资源的访问等等。

您可以免费使用VNC连接家庭使用,限于五台远程计算机和三名用户。 但是,对于任何专业和企业用途,都需要订阅费用。

3. TeamViewer

Teamviewer是一个流行的,功能强大,安全的跨平台远程访问和控制软件,可以同时连接到多个设备。 它是免费的个人使用,并有一个企业用户的高级版本。

它是用于远程桌面共享,在线会议和通过互联网连接的设备之间文件传输的远程支持的全功能应用程序。 它支持全球30多种语言。

4. Remmina

Remmina是一款免费且开放源代码的功能齐全且功能强大的远程桌面客户端,可用于Linux和其他类Unix系统。 它是用GTK + 3编写的,面向需要远程访问和使用多台计算机的系统管理员和旅行者。

它高效可靠,支持多种网络协议,如RDP,VNC,NX,XDMCP和SSH。 它还提供了一个完整一致的外观和感觉。

Remmina允许用户维护一个由组织组成的连接配置文件列表,支持用户直接输入服务器地址的快速连接,并提供一个选项卡式界面,可选择由群组管理,还有更多功能。

5. NoMachine

NoMachine是一款免费的跨平台高质量远程桌面软件。 它为您提供安全的个人服务器。 Nomachine允许您访问所有文件,观看视频,播放音频,编辑文档,玩游戏并移动它们。

它具有一个界面,可让您专注于自己的工作,并设计为以快速方式工作,就好像您坐在远程计算机前一样。 另外,它具有非凡的网络透明度。

6.Apache鳄梨酱

Apache Guacamole是一款免费且开源的无客户端远程桌面网关。 它支持VNC,RDP和SSH等标准协议。 它不需要插件或客户端软件; 只需使用HTML5 Web应用程序(如Web浏览器)即可。

这意味着,您的计算机的使用不会绑定到任何设备或位置。 此外,如果您想将其用于商业用途,您可以通过第三方公司获得专门的商业支持。

7. XRDP

XRDP是基于FreeRDP和rdesktop的免费开源,简单的远程桌面协议服务器。 它使用远程桌面协议向用户呈现GUI。 它可以用来与x11vnc一起访问Linux桌面。

它极大地与LikwiseOPEN集成,从而使您能够通过RDP使用活动目录用户名/密码登录到Ubuntu服务器。 尽管XRDP是一个很好的项目,但它需要一些修复程序,例如接管现有的桌面会话,在基于Red Hat的Linux发行版上运行等等。 开发者还需要改进其文档。

8. FreeNX

FreeNX是一个开源的,快速和多功能的远程访问系统。 它是一个安全的(基于SSH的)客户端/服务器系统,它的核心库由NoMachine提供。

不幸的是,在撰写本文时, FreeNX网站的链接不起作用,但我们提供了指向发行版特定网页的链接:

  1. Debian: https : //wiki.debian.org/freenx
  2. CentOS: https : //wiki.centos.org/HowTos/FreeNX
  3. Ubuntu: https : //help.ubuntu.com/community/FreeNX
  4. Arch Linux: https : //wiki.archlinux.org/index.php/FreeNX

就这样! 在本文中,我们回顾了访问远程Linux桌面的八种最佳工具。 请随时通过下面的评论表与我们分享您的想法。