详解远程桌面协议, Linux 和 Windows 间的远程桌面互相访问(RDP、VNC协议)

2023-05-16

前言:远程协议有很多,本文只讨论几种主要的,另外由于Windows之间的远程桌面工具实在是太多了,这里就不再说明,主要以Windows和Linux之间的互相访问来说明。

一、常见的远程协议及特点

目前常用的协议有VNC/SPICE/RDP三种,就在这里做一个简单的介绍。

三种协议的对比

 SPICEVNCRDP
BIOS屏幕显示不能
全彩支持
更改分辨率
多显示器多显示器支持(高达4画面)只有一个屏幕多显示器支持
图像传输图像和图形传输图像传输图像和图形传输
视频播放支持GPU加速支持不能GPU加速支持
音频传输双向语音可以控制不能双向语音可以控制
鼠标控制客户端服务器都可以控制服务器端控制服务器端控制
USB传输USB可以通过网络传输不能USB可以通过网络传输

 

RDP: Remote Desktop Protocol

VNC: (Virtual Network Console)是虚拟网络控制台的缩写

更加推荐使用VNC协议

二、RDP协议

2.1 Linux远程控制Windows电脑

(1)方法一:Linux上通过安装rdesktop控制Windows

首先要介绍的一个工具是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上取消“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”选项。

上图中,中间的那个界面就是远程连接的Windows桌面了,当然可以更改它的分辨率大小。

rdesktop 软件的参数解释

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

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

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

 

(2)方式二:通过grdesktop来控制远程Windows(图形化界面)

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

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

连接之后类似下图。

同样,中间出现的那个方框界面就是远程连接的Windows系统桌面。

 

(3)方式三:krdc连接Windows远程桌面

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

sudo apt install krdc

这里具体的连接截图就不展示了,krdc也是Linux中的带有GUI界面的软件,直接启动打开即可。

注意:远程连接两端的电脑都需要安装相应的软件哦,上面使用的由于是RDP协议,而且Windows是本身就带有RDP软件的,所以不再需要额外再window上面安装什么软件了,只需要在Linux上面安装对应的支持RDP协议的软件即可。

 

2.2 Windows远程控制Linux

通过RDP协议,Windows远程控制Linux的时候,Windows同样不需要安装什么,只需要早Linux上安装对应的软件即可,即所谓的RDP服务器。

(1)Linux安装xrdp (RDP服务器)

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

首先要安装xrdp。

sudo apt install xrdp

然后启动xrdp服务(要启动RDP协议的服务才行哦,其实和前面的Windows要允许远程访问是一样的)

sudo systemctl enable xrdp
sudo systemctl start xrdp

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

总结:

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

 

三、VNC协议

3.1 Linux上的VNV服务端软件——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,会在终端中显示出来。

 

3.2 Linux上的VNC客户端

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

(1)Vinagre客户端

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

sudo apt install vinagre

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

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

 

(2)KRDC服务端

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

 

(3)Remmina服务端

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

sudo apt install remmina

 

3.3 Windows上的VNC软件

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解远程桌面协议, Linux 和 Windows 间的远程桌面互相访问(RDP、VNC协议) 的相关文章

随机推荐

  • Ubuntu 下的根目录为

    根目录为 xff1a 如果我们要进入tmp user里 xff0c 只需要输入cd tmp user 即可 例如 xff1a wangrui span class token annotation punctuation 64 bsp sp
  • MySQL8开启SSL加密

    1 概述 MySQL从5 7开始默认开启SSL加密功能 xff0c 进入MySQL控制台后输入status可以查看SSL的状态 xff0c 出现下图表示在使用SSL xff1a 另外 xff0c 加密连接需要密钥与证书 xff0c 可以使用
  • 服务器上的内容无法复制到本机

    服务器上的内容无法复制到本地 xff0c 显示 xff1a 复制文件或文件夹出错 xff0c 未指定的错误 打开远程桌面连接 本地资源 详细信息 勾选下面的几项 xff0c 确定 然后打开任务管理器 xff0c 查看是否有 rdpclip
  • linux ping报错Name or service not known

    设置静态ip以后忘记设置dns xff0c ping的时候报错 xff1a Name or service not known 添加dns即可 span class hljs title vi span etc resolv conf na
  • 如何为SUSE配置IP地址,网关和DNS

    方法一 在命令行中配置 输入 xff1a ifconfig eht0 9 111 66 96 netmask 255 255 255 0 up route add default gw 9 111 66 1 方法二 在文件中设置 示例参数
  • TCP协议理解和用法以及三次握手四次分手

    TCP协议 1 TCP网络分层 应用层 xff0c 传输层 xff0c 网络互联层 xff0c 网络访问层 xff0c 物理层 应 层 应 程序之间如何相互传递报 xff0c 如HTTP协议 传输层 传输层的作 是为两台主机之间的 应 进程
  • React 1.8踩坑,模块化引入less样式不生效

    在看一个 react 项目的时候 xff0c 项目中是直接引入 import style from 39 style less 39 create react app 创建项目之后 xff0c react 脚手架里面是已经集成了css xf
  • 做CV和做NLP,是否都有光明的未来?

    每天给你送来NLP技术干货 xff01 来自 xff1a 算法圈的小破事 作者 xff1a 疯狂试探皮皮虾 大家好 xff0c 我是在互联网危险边缘疯狂试探的皮皮虾 最近有点忙 xff0c 拖更了 xff0c 不知道有没有读者惦记皮皮虾推文
  • iOS UIAlertController使用汇总

    文章目录 1 xff64 UIAlertController显示普通的Alert2 xff64 UIAlertController显示带文本输入的的Alert3 xff64 UIAlertController显示ActionSheet 1
  • IOS 相机和相册的调用UIImagePickerController

    文章目录 UIImagePickerController类常用属性与方法UIImagePickerControllerDelegate代理协议举例准备工作 代码 在App开发时 xff0c 当我们需要调用摄像头拍照或者希望从相册中选择一张照
  • CVPR2019超分辨率 《zoom to learn,learn to zoom》《Camera lens super resolution 》

    CVPR2019超分领域出现多篇 xff0c 更接近于真实世界原理的低分辨率和高分辨率图像对应的新思路 具体来说 xff0c 以前论文训练数据主要使用的是人为的bicubic下采样得到的 xff0c 网络倾向于学习bicubic下采样的逆过
  • Android开发接入头条联盟穿山甲SDK遇到的问题

    1 在android7 0及以上无法调出安装页面的问题 官方文档如下 xff0c 需适配7 0及以上 lt provider android name 61 34 android support v4 content FileProvide
  • containerd的本地CLI工具ctr命令教程

    目录 1 帮助命令 2 镜像操作 1 拉取镜像 2 列出本地镜像 3 检测本地镜像 4 重新打标签 5 删除镜像 6 将镜像挂载到主机目录 7 将镜像从主机目录上卸载 8 将镜像导出为压缩包 9 从压缩包导入镜像 3 容器操作 1 创建容器
  • 学习stm32f429 hal库编程时遇到了SystickHandler疑似无法执行的情况

    学习stm32f429 hal库编程时遇到了SystickHandler疑似无法执行的情况 中断服务函数 span class token keyword void span span class token function SysTic
  • 使用Gitblit在Windows平台上安装与配置Git Server

    1 安装JDK xff0c 并配置好JDK环境变量 2 下载安装GitBlit xff0c 下载地址 xff1a http www gitblit com或者http gitblit com 3 解压缩下载的压缩包到指定目录gitblit即
  • Qt学习总结之QPushbutton详解

    一 简述 按钮 xff0c 界面中常用的控件 xff0c 默认矩形 QPushButton的子类 xff1a QCommandLinkButton父类 xff1a QAbstractButton QAbstractButton的父类是QWi
  • Ubuntu下安装ARM交叉编译工具

    一 简介 在Ubuntu下安装ARM的交叉编译工具是常用到的 xff0c 下面以arm linux gcc 4 3 2为例讲解ARM下安装交叉编译工具 二 安装步骤 拷贝压缩文件到指定路径解压配置环境变量更新环境变量并查看验证是否成功 2
  • 记:ubuntu下交叉编译arm的链接库

    以第三方库libjpeg为例 xff0c 编译所需要的三步 xff1a 1 配置 configure脚本参数 xff0c span class token punctuation span span class token operator
  • 统计案例 | 三门问题

    统计案例 三门问题 一 前言二 背景三 思路1 xff1a 直观解释四 思路2 xff1a 列出概率空间与所有事件五 思路3 xff1a 条件概率法六 思路4 xff1a Python模拟七 写在最后 一 前言 今天小编和各位小伙伴来聊一档
  • 详解远程桌面协议, Linux 和 Windows 间的远程桌面互相访问(RDP、VNC协议)

    前言 xff1a 远程协议有很多 xff0c 本文只讨论几种主要的 xff0c 另外由于Windows之间的远程桌面工具实在是太多了 xff0c 这里就不再说明 xff0c 主要以Windows和Linux之间的互相访问来说明 一 常见的远