在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_3bf0a51ef5e1d94b6552c3318a88343b.png](https://i-blog.csdnimg.cn/blog_migrate/2234bdaf09641df4f75b624ad22a44bb.png)
下面简单解释一下这些参数意义。
参数 | 意义 |
---|---|
-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_dd4227c69dab83a2192e3a79a2650021.png](https://i-blog.csdnimg.cn/blog_migrate/26d81d8844712201cf2174ad5d8a1d26.png)
连接之后类似下图。
![img_ae1ce620673f9a9268ae1735483b68e8.png](https://i-blog.csdnimg.cn/blog_migrate/4c10e9c488cc58de6634536f8da3fe0e.png)
krdc
krdc是KDE桌面的rdp和vnc连接工具。我们使用下面的命令安装krdc.
sudo apt install krdc
打开之后如图所示。使用时需要先输入要连接的计算机地址,然后按回车在弹出的对话框中进行进一步设置。
![img_232b946e01adc837ffa474116b7b4da3.png](https://i-blog.csdnimg.cn/blog_migrate/89dad65da174faf91753e9a0b97eab23.png)
连接成功之后主窗口右半部分应该会显示远程桌面的内容,但是不知道什么情况我的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_0a1a57d1b2f651e20ccb8eabd69dc0e5.png](https://i-blog.csdnimg.cn/blog_migrate/799b7fa6ce9fe6653d883b2828891859.png)
输入用户名和密码之后稍等片刻,应该就会显示出Linux的桌面了。
![img_21bd5c45e574f8d3238ff74d6ba4db7a.png](https://i-blog.csdnimg.cn/blog_migrate/b7360fdb6ac0fe4cbd5a627f4f098aec.png)
好了,以上就是关于使用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_d5cfa89ed14802b2790dd1582498c434.png](https://i-blog.csdnimg.cn/blog_migrate/a10d19fc9bdfb4f00ba9464931d4df1f.png)
这是连接效果图,这是用VNC协议连接到我的Windows系统。
![img_8b3a2afd069d6bdf11204527b8c84e53.png](https://i-blog.csdnimg.cn/blog_migrate/ec9c15e6a82cbf73889bdae113e7be56.png)
然后是KRDC,这是前面介绍的KDE桌面的远程连接软件,它同时支持RDP和VNC协议。这是它使用VNC的连接效果图。
![img_7a4c62b4847a0cf44a108ad489791599.png](https://i-blog.csdnimg.cn/blog_migrate/72d920b132e3a074a790adb5e37adf28.png)
最后是Remmina,它也同时支持RDP和VNC协议。我们可以用下面的命令安装它。
sudo apt install remmina
下面是它的连接效果图。
![img_7eb95523056018ae71668f7860cc4fe0.png](https://i-blog.csdnimg.cn/blog_migrate/cc69bed77d5744d70894d48d77ca51e6.png)
Windows上的VNC软件
前面介绍了Linux上一些支持VNC协议的软件。在Windows上同样有一些支持VNC协议的软件,常用的有RealVNC(收费)、UltraVNC(免费)和TightVNC(免费),它们同时既是服务端又是客户端。这三个软件我都试了一下,感觉免费的TightVNC效果不错。收费的RealVNC和TeamViewer差不多,主要功能都在云端协作这方面,如果只是单纯的远程连接,TightVNC完全够用了,这是TightVNC的下载链接。
下面是几张RealVNC的截图,有兴趣的同学可以注册个账户试用30天。
![img_22fce15eb5db759197a24a06ebd515d6.png](https://i-blog.csdnimg.cn/blog_migrate/4bb6afdb474b4ddcacaef487ec54e9db.png)
![img_67f71a1d154bcc34535e3deebfa50f4d.png](https://i-blog.csdnimg.cn/blog_migrate/975e806481b753294751cc06440f330a.png)
然后来介绍一下TightVNC。安装好之后开始菜单会多出几个菜单项。首先点击Start TightVNC Service启动服务,然后系统托盘会多出一个图标,这就是TightVNC的图标。然后双击它打开设置。最主要的就是端口号和密码了,其实端口号也不需要设置,主要就是密码。设置完成后点击OK即可。
![img_a78167d81609d17ed9717390f033363e.png](https://i-blog.csdnimg.cn/blog_migrate/1e374b8f53b710d62cef3b7cb0c9f0b9.png)
如果需要远程登录其他系统,使用TightVNC Viewer。打开之后如图所示,按照IP地址::端口号
的格式输入地址,然后输入密码即可。主要这里是双冒号,不是单冒号。
![img_beeb19f37d68a75c51e6815b047ccdea.png](https://i-blog.csdnimg.cn/blog_migrate/3c73b4b2e1c291598313175f65bfd49d.png)
连接成功之后如图所示。
![img_d962afff22b4c3e21905f34770a99aa7.png](https://i-blog.csdnimg.cn/blog_migrate/1bdab9385407028846c8ec4e25663ada.png)
好了,以上就是Linux和Windows上RDP和VNC的一些软件的介绍和使用,希望对大家有所帮助。