在 ubuntu 22.04 上配置界面服务器 xrdp
文章目录
- 图形界面解决方案
- VNC
- XRDP
- XRDP 实例
- 安装和配置
- 使用
- XRDP 使用原理
- 谁更快 : X11转发 > XRDP > VNC
图形界面解决方案
1. VNC
2. XRDP
3. X11 + ssh : // https://blog.csdn.net/u011011827/article/details/131065690
VNC
外部开放端口 用的 是 5901-5910
桌面用的是 cat .vnc/xstartup 中写的桌面
XRDP
xrdp相关进程 A 外部开放端口是 3389
xrdp相关进程 B 内部开放端口是 3350tcp6 0 0 :::3389 :::* LISTEN 3663305/xrdp
tcp6 0 0 ::1:3350 :::* LISTEN 3663295/xrdp-sesman|-xrdp(3663305)---xrdp(3666729)// 3666729 是新建立的会话,如果不停销毁会话,该PID会一直变化//会话建立之后,使用 3664951 PID 对应的 图形界面,该PID不会随着会话的销毁而销毁//每个用户 同一时刻 只能有一个会话.该会话对应 "3664951 PID 对应的 图形界面"//新建立的会话会将之前的会话销毁|-xrdp-sesman(3663295)---xrdp-sesman(3664951)-+-Xorg(3664953)-+-{Xorg}(3664956)| | `-{Xorg}(3664961)| |-gnome-session-b(3664952)-+-ssh-agent(3665023)| | |-{gnome-session-b}(3665043)| | |-{gnome-session-b}(3665045)| | `-{gnome-session-b}(3665123)| `-xrdp-chansrv(3664962)---{xrdp-chansrv}(3664963)桌面用的 是 .xsession 中写的桌面配置文件还包括/etc/xrdp/xrdp.ini // xrdp配置,不需要改/etc/xrdp/sesman.ini //会话配置,,不需要改/etc/xrdp/startwm.sh //xrdp配置 中提到的脚本,,不需要改
XRDP 实例
安装和配置
- 安装 vnc 服务器 和 xrdp 服务器
sudo apt-get install xrdp
sudo service xrdp status // check 状态
- 配置 ~/.xsession
// ubuntu 默认桌面环境为 gnome
在图形界面下新建一个shell,键入 echo $XDG_CURRENT_DESKTOP
它会显示 GNOME
则我们需要在~/.xsession 中填入 gnome-session
该配置过后不用重启服务器
使用
在 windows 下 win + R ,打开运行窗口, 输入 mstsc
输入计算机IP 和 用户名,确认后.会提示输入密码.输入密码即可!
XRDP 使用原理
xrdp 是一种远程桌面协议,它允许用户通过网络连接到远程计算机并使用该计算机的桌面环境。以下是 xrdp 会话建立的过程:客户端通过 RDP 协议连接到 xrdp 服务器的 3389 端口。
xrdp 服务器接收到连接请求并验证客户端的身份。
xrdp 服务器启动一个新的 X11 会话(或连接到现有的 X11 会话)。
xrdp 服务器为客户端创建一个虚拟 X11 显示器,并将客户端连接到该显示器。
xrdp 服务器启动一个桌面环境(例如 GNOME、XFCE 或 KDE)。
客户端通过 RDP 协议接收 xrdp 服务器发送的屏幕图像和输入事件,并将它们显示在本地计算机上。在 xrdp 的配置文件中,您可以指定要使用的桌面环境、要监听的端口以及其他选项。
默认情况下,xrdp 使用的是 Xvnc 作为其默认的 X11 服务器,但也可以使用其他 X11 服务器,例如 Xorg。与 VNC 类似,xrdp 也是一种远程桌面协议。
但是,它们之间有一些区别。
VNC 使用自己的协议来传输屏幕图像和输入事件,而 xrdp 使用 RDP 协议。
此外,xrdp 可以在 Windows 上使用自带的远程桌面客户端进行连接,而 VNC 需要使用第三方 VNC 客户端。
谁更快 : X11转发 > XRDP > VNC
但是我目前无法在 X11转发 下 获取一个完成的图形桌面!
$ sudo gnome-session** (process:3667498): WARNING **: 23:35:38.592: Could not make bus activated clients aware of XDG_CURRENT_DESKTOP=GNOME environment variable: Failed to execute child process ?dbus-launch? (No such file or directory)
Terminated
在理论上,X11 转发、VNC 和 xrdp 都可以用作远程桌面服务器,但它们之间有些许不同:X11 转发:X11 转发是将本地 X11 服务器上的应用程序窗口和 GUI 元素转发到远程计算机上的 X11 服务器上。这意味着您可以在本地计算机上运行应用程序,并在远程计算机上查看应用程序的 GUI。X11 转发使用 SSH 协议进行加密和身份验证,因此非常安全。但是,X11 转发的性能可能会受到网络延迟和带宽限制的影响。VNC:VNC 是一种基于远程帧缓冲协议的远程桌面服务器。当您通过 VNC 协议连接到 VNC 服务器时,服务器会将屏幕图像和输入事件发送到客户端。VNC 服务器通常使用 5900 端口进行通信。VNC 可以在低带宽网络下工作,但由于其使用的是远程帧缓冲协议,因此其性能可能不如 X11 转发。xrdp:xrdp 是一种基于 RDP 协议的远程桌面服务器。当您通过 RDP 协议连接到 xrdp 服务器时,xrdp 会在服务器上启动一个新的 X11 会话,并为您创建一个虚拟 X11 显示器。然后,xrdp 会将客户端连接到该显示器,并启动一个桌面环境(例如 GNOME、XFCE 或 KDE)。xrdp 使用 3389 端口进行通信,并且可以使用 SSL/TLS 进行加密和身份验证。综上所述,从理论上讲,X11 转发是最安全、最快速的选项,但它需要在本地计算机上安装 X11 服务器。
VNC 是一种可靠的跨平台解决方案,但它的性能可能不如 X11 转发。
xrdp 则是一种基于 RDP 协议的远程桌面服务器,它可以提供与 Windows 远程桌面类似的体验,并且可以在大多数操作系统上使用。
从理论上来说,X11 转发比 xrdp 更快。这是因为 X11 转发只是将本地 X11 服务器上的应用程序窗口和 GUI 元素转发到远程计算机上的 X11 服务器上,而不需要在远程计算机上启动新的桌面环境。这意味着,X11 转发可以利用本地计算机的 CPU 和 GPU 资源,从而提供更快的性能。相比之下,xrdp 需要在远程计算机上启动新的桌面环境,并将屏幕图像和输入事件发送到客户端。这可能会导致更高的网络延迟和带宽占用,从而影响性能。但是,实际性能取决于许多因素,例如网络速度、带宽、计算机硬件和软件配置等。因此,对于特定的使用情况,X11 转发和 xrdp 的性能可能会有所不同。
---从理论上来说,xrdp 比 VNC 更快。这是因为 xrdp 是基于 RDP 协议的远程桌面服务器,使用 3389 端口进行通信。RDP 协议是专门为远程桌面设计的,具有较低的延迟和带宽占用。相比之下,VNC 使用基于帧缓冲区的远程桌面协议,可能会导致更高的延迟和带宽占用。然而,实际性能取决于许多因素,例如网络速度、带宽、计算机硬件和软件配置等。在某些情况下,VNC 可能比 xrdp 更快,特别是在低带宽网络环境下。因此,最好根据具体情况选择适合自己的远程桌面服务器。
除了 X11 转发和 xrdp,还有一些其他的图形界面服务器,例如:NX:NX 是一种基于 X11 转发的远程桌面服务器。它使用压缩和缓存技术来提高性能,并支持多用户会话和断点续传等功能。在某些情况下,NX 的性能可能比 X11 转发更快。Spice:Spice 是一种新型的远程桌面协议,它支持高质量的视频、音频和 USB 重定向等功能。Spice 可以与 KVM 虚拟化技术一起使用,以提供高性能和低延迟的远程桌面体验。RFB:RFB(Remote Framebuffer)是 VNC 协议的一种变体。它使用 JPEG 或 PNG 压缩算法来减少带宽占用,并支持加密和身份验证等功能。RFB 的性能可能比标准 VNC 更快。
相关文章:
在 ubuntu 22.04 上配置界面服务器 xrdp
文章目录 图形界面解决方案VNCXRDP XRDP 实例安装和配置使用 XRDP 使用原理谁更快 : X11转发 > XRDP > VNC 图形界面解决方案 1. VNC 2. XRDP 3. X11 ssh : // https://blog.csdn.net/u011011827/article/details/131065690VNC 外部开放端口 用的 是 5901-5910 桌面用…...

53、基于51单片机蓄电池充电器过充过放保护LCD液晶屏显示系统设计(程序+原理图+PCB源文件+参考论文+参考PPT+元器件清单等)
方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元&…...

【C/C++】详解 函数重载和应用
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...

WPF开发txt阅读器4:字体控件绑定
文章目录 控件折叠字体尺寸绑定选择字体字体的中文名称 txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录 控件折叠 作为一个txt阅读器,至少能够设置文字字体、尺寸,段落行间距等,还得有护眼模式等一系…...
CoreDX DDS应用开发指南(8)开发订阅应用程序
11 应用数据类型Application Data Types 11.1 概述 每个DDS主题都包含一个且仅包含一个数据类型,这是在主题上进行通信时使用的用户定义的数据类型。在大多数情况下,应用程序开发人员以数据定义语言(DDL)格式定义这些DDS数据类型。编译器用于将这些DDL类型定义转换为适当的…...

基于Python的接口自动化-读写配置文件
目录 引言 configparser模块功能介绍 引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值。为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这…...

useEffect的基础知识和底层机制
useEffect 是 React 中一个重要的 Hook,用来处理组件的副作用操作。它的基础知识包括两个方面:执行时机和参数。 执行时机: useEff ect 的执行时机包括两种情况: 组件挂载时,即第一次渲染之后。组件更新时ÿ…...

chatgpt赋能python:Python中如何加空格
Python中如何加空格 Python是一门广泛应用于科学计算、数据分析、人工智能、Web开发等领域的高级编程语言。在Python编程过程中,经常需要使用到空格,以实现程序的格式化和美观,同时也有助于提高代码的可读性和可维护性。本文主要介绍Python中…...

软件测试之路已不再是坦途
去年下半年才跳了槽,过程非常顺利,没有经历大家所说的工作荒的境地,所以一直没有直观地感受到软件测试就业形势到底有多严峻。 近来看到一些机构频频发出某某测试员在糟糕的就业形势下逆袭拿下XXW的某厂offer,然后推荐测试进阶课…...

扫雷——C语言实现
扫雷 文章目录 扫雷实现代码什么是扫雷基本功能实现显示选择菜单定义几个二维数组?确定数组大小初始化数组布置地雷打印展示数组排查地雷记录指定区域周围地雷的个数判断排雷成功排查地雷实现代码 基本功能的实现代码和效果展示 拓展功能简化游戏界面改变字体颜色实…...

CSS基础学习--6 CSS Text(文本)
一、文本颜色 color:red; 颜色属性被用来设置文字的颜色。 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000一个RGB值 - 如: RGB(255,0,0)颜色的名称 - 如: red body {color:red;} h1 {color:#00ff00;} h2 {color:rgb(255,0,0);} 二、文本的…...

高精度电压源的应用场合有哪些
高精度电压源是一种能够提供恒定、稳定电压输出的设备,被广泛应用于各种领域。高精度电压源是现代电力、通信、控制等领域中重要的测试仪器之一,其主要功能是提供稳定可靠的直流或交流电源,并具有高精度和高分辨率的特点。在实际应用中&#…...
Android约束布局
一、嵌套布局效率可能很低。 在 Android 开发中,我们常常需要使用嵌套布局来实现某些较复杂的界面效果。但是嵌套层级太深会带来一些问题,主要包括: 视图层级过深,导致内存占用过高和性能下降。Android 需要为每个 View 对象分配内存,嵌套层级过深会创建很多 View 对象,占用较…...

selenium基础语法
文章目录 selenium基础语法1.定位页面元素2.元素的操作1) 模拟键盘输入(send_keys)2) 点击操作(click)3) 清除去对象输入的文本内容(clear)4) 获取文本(gettext) 3. 等待4. 信息打印5. 窗口6. 导航7. 弹窗8. 鼠标和弹窗9.选择框10.文件上传11.屏幕截图 selenium基础语法 1.定位…...

运行后端SpringBoot项目
目录 一、注册微信开发者账号 1. 注册开发者账号 2. 获取appid和密钥 二、开通腾讯云TRTC服务 1. TRTC业务介绍 2. 为什么不使用阿里云的实时音视频服务,偏要选用腾讯云TRTC服务? 3. 开通TRTC服务 4. 领取TRTC的AppID和密钥 三、导入 emos-api …...
#如何对待工作中的失误?# 如何对待工作与生活中的失误——一些不成熟的忠告
关于如何对待工作与生活中的失误的忠告 1.在面对失误而带来的指责和沮丧时,应该如何做?1.1 正确认识失误1.2 处理失误后情绪与问题的途径1.2.1 接受现实,不要否认错误1.2.2 不要过度臆想1.2.3 安排调整情绪的时间1.2.4 向他人寻求帮助 2.发生…...

Shell脚本文本三剑客之awk编辑器
目录 一、awk简介 二、awk工作原理 三、awk命令格式 四、awk命令的使用 1.print操作按行输出文本 2.print操作按字段截取输出文本 3.使用BEGIN和END指定操作 4.使用管道符号,双引号调用shell命令 5.使用操作getline 6.使用操作OFS 7.配合数组使用 一、…...
Focal Loss介绍
目录 前言一. Focal Loss二. 总结 前言 在目标检测算法中,我们会经常遇到Focal Loss这个东西,今天我们就来简单的分下下这个损失。 一. Focal Loss 在深度学习训练的时候,在遇到目标类别不平衡时,如果直接计算损失函数࿰…...

【数据结构与算法】04 哈希表 / 散列表 (哈希函数、哈希冲突、链地址法、开放地址法、SHA256)
一种很好用,很高效,又一学就会的数据结构,你确定不看看? 一、哈希表 Hash Table1.1 核心概念1.2 哈希函数 Hash Function1.3 哈希冲突 Hash Collision1.4 哈希冲突解决1.41 方法概述1.42 链地址法 Separate Chaining1.43 开放寻址…...
每日一道面试题之介绍一下Java的序列化和反序列化!
什么是序列化? 序列化是将对象转换为容易传输的格式的过程,它是一种用来处理对象流的机制,将对象的内容流化,从而使流化后的对象传输于网络之间,以便它们可以在网络上传输或在磁盘上存储。反序列化是将序列化后的数据…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...