admin 管理员组

文章数量: 887021

想要知道怎么远程的,首先得要了解三种远程桌面协议(如果不想了解的,可以直接跳过第一节)。

一、远程桌面协议

目前据我所知远程桌面连接的有两三种协议:远程帧缓存协议(RFB:Remote Frame Buffer)、远程显示协议(RDP:Remote Display Protocol )和Xdmcp(X Display Manager Control Protocol)。

1、RFB

这个协议实现起来比较简单,传输的主要是桌面的帧缓存数据,基本上支持所有的窗口系统,如果想要详细了解的可以看这篇文章:RFB协议解析_卡索-CSDN博客_rfb协议

。目前主要针对这个协议采用的服务是VNC,虽然使用这种协议的远程桌面能跟源桌面保持很好的一致性,但是亲测使用这种协议远程ubuntu控制ubuntu的时候桌面会比较卡顿。

2、RDP

这个协议是由微软开放的,基本上所有windows系统都有原生的rdp服务器。RDP协议是在远程电脑上离屏渲染好桌面后然后将图片通过网络(tcp)传输到本地机器,然后在本地机器上显示出来,该协议可以设置桌面颜色、背景、分辨率等信息(因为离屏渲染可以允许设置这些参数),也可以支持音频传输(分为两个传输通道:图片和音频)。

ubuntu系统支持rdp协议的服务是XRDP(xrdp也是一个协议),该协议其实就是X协议和RDP协议的结合体。因为linux系统的桌面协议是X协议(现在已经更新到第11版本了,所以也叫X11),X协议将运算和绘制分开,负责运算的叫XClient(也就是远程机器),负责绘制的叫XServer(也就是本地机器,管理着具体的输入输入硬件,比如键盘、鼠标、屏幕),XServer将输入信息(比如鼠标移动、键盘按键)通过网络传递给XClient,XClient将绘制命令通过网络传递给Xclient并执行绘制命令。因此X协议传递桌面信息主要是以绘制命令的形式。

XRDP的工作原理可以简单概括为以下几个步骤:

  1. 用户在客户端启动RDP客户端,输入远程服务器的IP地址、用户名和密码等信息。
  2. RDP客户端与远程服务器建立TCP连接,并开始进行加密通信。
  3. 远程服务器上的xrdp服务接收到连接请求后,启动一个虚拟的X session(也就是虚拟的X协议的桌面环境:X window,由XServer和XClient构成),并将RDP协议的数据流转换为X协议的数据流。
  4. 虚拟的X session将图形界面渲染成图像数据(由XClient给XServer发出绘制指令,XServer渲染绘制成图片数据),通过X协议传输给xrdp服务。
  5. xrdp服务将图像数据封装成RDP协议的数据包,发送给RDP客户端。
  6. RDP客户端解析数据包,将图像数据显示在本地屏幕上,同时将用户的键盘和鼠标操作封装成RDP协议的数据包发送给远程服务器。
  7. 远程服务器上的xrdp服务接收到用户输入后,转换为X协议的数据流,传递给虚拟的X session进行处理。

rdp协议的连接虽然不能跟源桌面保持很好的一致性,但是亲测发现ubuntu远程控制ubuntu这种协议基本上不会有卡顿。

3、Xdmcp

Xdmcp协议其实就是以X协议为基础的远程桌面协议,以X协议开发出来的系统叫做X window,该协议大家可以参考Linux远程桌面服务详解:VNC、XRDP、Xdmcp与SSH+X11转发在树莓派上的实践

二、ubuntu远程桌面win10

注意:家庭版的win10是不支持远程的,有同事亲测过。

1)安装rdp协议服务工具

由于win10原生本来就支持rdp协议,因此只需要稍微设置一下就好:

计算机---属性---远程设置---远程,勾选:允许远程连接到此计算机。去掉默认勾选:仅允许运行使用网络级别验证...,(如果不取消这个,在运行时会出现“ERROR: recv: 连接被对端重置”)

2)ubuntu上安装rdp协议客户端工具

sudo apt install rdesktop

 3)连接

rdesktop -f -a 32 远程电脑IP

三、ubuntu远程桌面ubuntu

1)远程计算机安装rdp协议服务工具

sudo apt-get install xserver-xorg-core
sudo apt-get -y install xserver-xorg-input-all
sudo apt-get install xrdp
sudo apt-get install xorgxrdp

2)本地机器安装rdp协议客户端工具

可以选择rdesktop,但是亲测存在很多问题(比如桌面容易卡死,每次连接的桌面还不一样,文件管理系统根本用不了),因此推荐用remmina,一般ubuntu安装好之后就会有这个软件,如果没有安装一个就行了:

sudo apt install remmina

3)连接

3.1)首先打开remmina软件,点击左上角的“new”,然后名字那一栏要改成自己的(原始名字为:Quick Connect,如果不改成自己的名字,那么后面的配置状态是不会保存的,下次再连接的时候只能重新输入这些参数了);

3.2)协议(Protocol)那一栏选择 RDP-Remote Desktop Protocol;

3.3)Basic->Server 输入远程机器的IP地址;

3.4) User name 一栏填入远程机器的登录名;

3.5)User password一栏填入远程机器的登录密码;

3.6)Color depth一栏选择 True coloe(32bpp);

3.7)点击右下角的 Save and Connect按钮,就可以看见远程桌面啦。

4)配置远程桌面

刚开始可能远程桌面只有背景,没有程序坞、菜单栏这些,因此需要一配置一下。首先在远程机器安装tweaks工具:

sudo apt install gnome-tweak-tool

然后打开tweaks工具,Extensions->Ubuntu appindicators->ON,Extensions->Ubuntu dock->ON。

四、win10远程桌面ubuntu

# ubuntu设置
sudo apt-get install xrdp # 安装远程桌面协议
sudo apt-get install xubuntu-desktop # 安装远程图形界面软件
sudo service xrdp restart # 启动远程服务
echo "xfce4-session" > ~/.xsession # 设置默认的会话

# win10连接
打开远程桌面->输入远程ip地址->输入用户名和密码->等待连接成功

参考:

xrdp:远程桌面连接的开源之选

Linux远程桌面服务详解:VNC、XRDP、Xdmcp与SSH+X11转发在树莓派上的实践

本文标签: 远程桌面 Ubuntu