在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上取消“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”选项。

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

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

grdesktop

连接之后类似下图。

grdesktop

krdc

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

sudo apt install krdc

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

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系统了。

xrdp

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

xrdp访问桌面

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

VNC

tigervnc和x11vnc

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

https://wiki.archlinux.org/index.php/TigerVNC#Installation首先用下面的命令安装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

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

Vinagre建立连接

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

Vinagre

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

KRDP

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

sudo apt install remmina

下面是它的连接效果图。

Remmina

Windows上的VNC软件

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

https://www.tightvnc.com/download.php

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

RealVNC

RealVNC服务端和客户端

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

TightVNC服务器设置

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

TightVNC Viewer

连接成功之后如图所示。

TightVNC Viewer连接

好了,以上就是Linux和Windows上RDP和VNC的一些软件的介绍和使用,希望对大家有所帮助。

rdp远程连接windows和linux,详解 Linux 和 Windows 间的远程桌面访问相关推荐

  1. mysql打开网络访问权限_远程连接mysql 授权方法详解

    今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器 ...

  2. SSH远程连接原理及操作详解

    参考资料SSH登录原理_藏红的博客-CSDN博客 SSH全称是Secure Shell,SSH协议是基于应用层的协议,为远程登录会话和其他网络服务提供安全性的协议.SSH使用最多的是远程登录和传输文件 ...

  3. route命令linux详解,Linux系统运维关于route命令的详解

    Linux系统运维涉及到各方面的知识,比如工作中需要测试网络环境,本文介绍Linux系统运维关于Linux测试工具route的使用方法,希望能给大家的工作带来一定更多帮助. 在配置网络时,要为机器指定 ...

  4. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

  5. 详解linux netstat输出的网络连接状态信息

    本博文为老男孩linu培训机构早期的培训教案,特分享以供大家学习参考. 全部系列分为五篇文章,本博文为第一篇: 目录:一.生产服务器netstat tcp连接状态................... ...

  6. linux中jstack命令详解,Linux jstack命令详解

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息. 如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack ...

  7. 字符界面运行mysql_详解linux系列之字符界面下MySQL+apache+php的源代码安装

    详解linux系列之字符界面下MySQL+apache+php的源代码安装 在前面介绍了linux和在字符下安装,下面我来介绍一下程序包的安装. 大家也许都知道在linux安装程序的时候后用rpm包安 ...

  8. init.d,rc.d详解 Linux运行时详解

    Linux 启动时需要哪些步骤呢?本文将详细描述不同的运行级在启动中的作用. 对于那些在DOS/Win9x/NT 平台下的高级用户而言,Linux 似乎是一个怪物.没有config.sys ,没有 a ...

  9. Windows API函数大全---附:windows运行命令详解

    1. API之网络函数             WNetAddConnection 创建同一个网络资源的永久性连接             WNetAddConnection2 创建同一个网络资源的连 ...

最新文章

  1. 今晚解决了ActiveSync不能连接到手机的问题,电脑软件没有问题的情况
  2. python 14 装饰器
  3. SparkSQL读取hive中的数据,行转列的两种方式【行转列专用函数,UDAF】
  4. MySQL 8.0.22执行器源码分析HashJoin —— BuildHashTable函数细节步骤
  5. freemarker -基本概念
  6. AppDelegate 方法介绍
  7. Daily Scrum02 12.17
  8. python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...
  9. 元胞自动机生命游戏C语言并行实现
  10. python 安卓应用层_Android应用层源码阅读笔记--Application
  11. 宏电4g路由器流量卡怎么设置_宏电4g无线路由器设置_4g路由器怎么设置网口
  12. c#实现四舍五入(Round)/向上舍入(RoundUp)/向下舍入(RoundDown)
  13. 三、Eureka注册与发现之Eureka Comsumer
  14. 百度地图API入门1-申请百度API key
  15. 抖音算法揭秘,百万粉丝的背后逻辑
  16. docker开机启动失败_docker安装后启动不了 解决方法
  17. Git学习二、GitLab官网,安装自己的一个私有Gitlab代码管理库
  18. GITHUB下载慢解决办法-插件解决
  19. 转载:基于MATLAB的几种图像分割算法
  20. hrbust 2188 星际旅行

热门文章

  1. Flutter文本输入框TextField的焦点控制
  2. 如果你的朋友生肖是羊的请好好珍惜、属羊的朋友有同感的转一下.
  3. 现代信号处理——时频分析与时频分布(Wigner-Ville分布)
  4. js判断手机是否安装app,有就打开app,没有就跳下载页
  5. std::advance 给迭代器增加指定偏移量
  6. [ 1.309420] Freeing initrd memory: 484K 卡死问题解决办法
  7. SSH1和SSH2区别
  8. 图像中一个坐标绕图像中心旋转90度、-90度、180度的新坐标求解
  9. HTTP1和HTTP2的区别
  10. 修复SSL3.0漏洞