Linux和Windows间的远程桌面访问

2023-05-16

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/79905102

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

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

参数

意义

-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
复制

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

连接之后类似下图。

krdc

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

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

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

好了,以上就是关于使用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
复制

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

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

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

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

sudo apt install remmina
复制

下面是它的连接效果图。

Windows上的VNC软件

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

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

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

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

连接成功之后如图所示。

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

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

Linux和Windows间的远程桌面访问 的相关文章

  • 如何设置任务在使用 vbs 登录时以当前用户身份运行而无需管理员权限?

    从命令行 我可以创建一个在登录时运行的计划任务 无需管理员权限或用户输入密码来设置任务 但是我必须使用 xml 文件来执行此操作 下面是一个示例 xml 其中 Domain User 部分必须在运行时替换为当前用户的域和名称
  • C++ 使用 Windows 命名管道

    由于某种原因 桅杆和从属装置都失败了 但是我可以找到任何关于它们如何工作的好例子 所以我不确定我哪里出了问题 在 ConnectNamedPipe 之后 主设备永远不会退出 WaitForSingleObject 并且从设备在第一个 boo
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 什么是WINVER?

    我正在查看一些代码 他们有这一行 define WINVER 0x0501 in stdafx h文件 为什么需要定义WINVER 它如何影响您的代码 有人可以解释一下吗 WINVER 确定构建应用程序所需的最低平台 SDK 这反过来又会在
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • conio.h 不包含 textcolor()?

    我一直在考虑在我用 C 编写的 DOS 程序中使用颜色 有人告诉我conio h有textcolor 函数 但是当我在代码中使用它时 编译器 链接器会向我抛出错误 说我对该函数有未定义的引用 Does conio h真的有这个功能还是有人告
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 在高 dpi Windows 平台上自动重新缩放应用程序?

    我正在编写一个需要在高 dpi Windows 192dpi 而不是 96dpi 上运行的 Qt 应用程序 不幸的是 Qt 框架尚不支持高 dpi 至少在 Windows 上 因此我的应用程序及其所有元素看起来只有应有尺寸的一半 有没有办法
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上

随机推荐

  • VS2017提示 LNK1104 无法打开文件 kernel32.lib

    在C盘里搜索kernel32 lib的路径 xff0c 然后添加到项目 gt 属性 gt VC 43 43 目录 gt 库目录里去就好了 但不知道为什么 xff0c x64路径下的kernel32就不行
  • 【智能无线小车系列四】树莓派操作系统安装

    对于第一次接触树莓派的人来说 xff0c 初次点亮树莓派的过程总是最为激动人心的 其实它就跟我们刚刚买回来的电脑一样 xff0c 首先需要做的就是安装操作系统 还记得上操作系统课程的提到 xff0c 操作系统是软件和硬件之间的桥梁 xff0
  • 使用c++实现学生成绩管理系统

    学生成绩管理系统 一 前言二 系统介绍头文件 CStudent h 2 源文件 xff08 实现函数 xff09 3 源文件 xff08 测试函数 xff09 4 运行截图 三 总结 一 前言 学生成绩管理系统的设计 xff0c 可以更好地
  • 魔百盒cm311-1a yst 青龙

    Armbian Debian 清华源 tsinghua source 清华源 deb https mirrors tuna tsinghua edu cn debian buster main contrib non free deb sr
  • 手把手教你安装Python3.x

    目录 普通安装下载安装包安装Python设置Python安装包 其他安装参考资料End 普通安装 下载安装包 打开浏览器 进入 Python 官网网站 xff08 https www python org xff09 xff0c 因为网站在
  • 实验二 单片机汇编语言算法实现(排序控制LED灯亮灭)

    这里写目录标题 实验二 汇编语言算法实现实验一 实验目的二 实验内容三 实验结果 实验二 汇编语言算法实现实验 一 实验目的 xff08 1 xff09 掌握汇编语言工程的编写 xff08 2 xff09 对单片机 I O 接口汇编控制有初
  • Centos7—2003下安装mysql8.0.28详细教程

    首先使用xftp上传mysql的linux压缩包 然后使用解压命令tar xvf mysql 8 0 28 1 el7 x86 64 rpm bundle tar 具体步骤如下 严格按照安装顺序安装 切记切记 root 64 localho
  • kali下载安装

    一 前期准备 kali镜像下载地址 xff1a http mirrors ustc edu cn kali images 二 VMware虚拟机配置 1 打开vmware xff0c 点击创建新的虚拟机 2 选择自定义 高级 选项 xff0
  • Linux设置字符界面的字体大小和字体类型

    SourceURL file home windstorm Documents ManjaroLinuxManual SetConsoleFont docx 首先我们进入目录 cd usr share kbd consolefonts 然后
  • anaconda3重新安装后cmd和anaconda都打不开的情况

    之前更新anaconda3时 xff0c 选择的默认安装路径 xff0c 更完后发现电脑上两个anaconda3 xff0c 原来是我第一次安装时和后来更新时选择的路径不一样 xff0c 强迫症的我想删了一个 xff0c 可又害怕出现问题
  • 处理器的大小端及位序

    大端Big Endian xff1a 数据的高字节存储到低位地址中 小端little Endian xff1a 数据的低字节存储到低位地址中 举例说明 xff1a 32位16进制数据为 61 0x12345678 xff0c 大端存储 地址
  • Python之循环语句while

    使用 while 循环 xff0c 只要条件为真 xff0c 我们就可以执行一组语句 场景 1 用户名和密码 反复输入 2 计算1 100 where 条件 要循环执行的代码 1 打印1 xff5e 10之间的数字 2 打印1 50之间能被
  • vue3-devtools安装

    开始使用vue3后 xff0c 发现浏览器上安装的vue devtool不支持vue3 xff0c 但是不翻墙的话无法通过webstore安装 xff0c 所以就只能通过下载源码自行打包来安装 xff0c 折腾了很久 xff0c 记录一下
  • 移动端布局——flex布局下的居中对齐方式(1+X Web前端开发初级 例题)

    题目要求 html代码 lt DOCTYPE html gt lt html gt lt head gt lt title gt 第三题 lt title gt lt meta charset 61 34 utf 8 34 gt lt lt
  • 在redhat8中安装ansible

    文章目录 一 确保有下载软件的仓库二 挂载三 安装 EPEL 源四 下载ansible五 查看是否安装好补充 xff1a 一 确保有下载软件的仓库 如果没有需要写一个 二 挂载 root 64 haha yum repos d mount
  • 【bat批处理】手把手教你批量打开软件、文件、网页等

    bat批处理 打开软件 文件等 0 前言1 start 命令用法1 0 注释1 1 start 命令说明1 2 启动软件1 3 打开文件1 4 打开文件夹1 5 打开网页 2 实战2 0 怎么创建bat批处理文件2 1 打开软件 文件 网页
  • rust的现状和未来发展

    rust现状 Stack Overflow 的开发者调研显示只有 7 的开发者在使用 Rust xff0c 对比 JavaScript Python 等语言 xff0c 使用 Rust 的开发者占比并不高 xff1b 但从 2016 年开始
  • collect2:fatal error: ld terminated with signal 11 [Segmentation fault] 问题的解决

    问题产生 今天gcc编译C文件的时候遇到一个始终无法解决的问题 collect2 fatal error ld terminated with signal 11 Segmentation fault 问题原因 首先我们看到编写程序最眼熟的
  • YAPI宕掉,重启

    因为公司需要 xff0c 一周前 xff0c 安装部署了YAPI的接口服务 安装的时候也是莫名其妙 xff0c 根据很多博客教程 xff0c 下载 node js 下载 mongdb 及对以上进行配置 xff0c 安装YAPI xff0c
  • Linux和Windows间的远程桌面访问

    版权声明 xff1a 本文为博主原创文章 xff0c 转载请注明出处 https blog csdn net u011054333 article details 79905102 在Windows上面 xff0c 我们都用过系统自带的远程