当前位置: 首页 > news >正文

xRDP – 在 Ubuntu 18.04、20.04、22.04、22.10、23.04(脚本版本 1.4.7)上轻松安装 xRDP

最新脚本Repository | c-nergy.be

概述

到目前为止,您应该知道 xrdp-installer 脚本旨在简化 xRDP 在 Ubuntu 操作系统上的安装和配置后操作。xRDP 是一款在 Linux 上启用远程桌面服务的软件。这意味着 Windows 用户可以使用他们的远程桌面客户端 (mstsc) 并执行与 Ubuntu 计算机的远程连接。

最初,该脚本仅支持带有 Gnome 桌面界面的 Ubuntu。但是,最新版本的脚本会检测正在使用的桌面界面,并尝试根据需要执行配置后操作。最新版本的脚本也可以在 Debian 操作系统上运行。请注意,支持其他 Flavors 是基于 Best effort 方法。

此版本(版本 1.4.7)中有哪些新功能?

添加对 Ubuntu 23.04 的支持

应读者的要求,我们更新了脚本以支持最新版本的 Ubuntu(即 23.04)。

添加编译参数

一些用户注意到,在执行自定义安装时,Hyper-V 增强模式未按预期工作。当您执行标准安装时,该功能运行正常。因此,在快速浏览之后,我们注意到在从源代码编译 xrdp 时,我们需要添加 –enable-vsock 选项。此版本中还添加了此功能。

此版本(版本 1.4.7)中缺少什么?

声音重定向(如果使用 Pipewire)

xrdp 包需要 pulseaudio 声音服务器来启用声音重定向。由于 Ubuntu 22.10 及更高版本现在使用的是 Pipewire 声音服务器,因此 xrdp-installer 脚本将通知您未检测到 Pulseaudio 服务器,并且没有声音重定向可用。在之前的文章中,我们描述了在使用 Pipewire 时如何使声音重定向正常工作的过程(请参阅 xRDP – 在 Ubuntu 22.10 中测试初始 Pipewire 声音重定向支持(早期阶段))。如果您使用的是 Pipewire 并且需要声音重定向,则可以尝试使用此过程。

下一个版本将包括(仍作为测试模式)对 Pipewire 的支持。这意味着该脚本将尝试编译 Hiero 编写的测试模块,并尝试根据需要启用声音重定向。

如何使用脚本

xrdp-installer-1.4.7 脚本的工作方式与以前的版本类似。以下部分将介绍如何使用脚本下载、解压、设置可执行模式和执行安装。该脚本提供了一些可用于自定义安装过程的开关。

那么,让我们看看这将如何运作......

免責聲明

该脚本按原样提供。使用它的风险负 !!

先决条件和假设

为了在使用脚本时获得最佳结果,应满足以下条件

  • 我们假设您的计算机在执行安装时已连接到 Internet。这是必需的,因为需要在 Ubuntu 计算机上下载并安装其他软件包和软件

脚本版本&支持的Ubuntu版本

xrdp-installer-1.4.7.sh 脚本将支持以下 Ubuntu 操作系统版本,假设 Gnome Desktop 是默认的桌面界面

  • Ubuntu 18.04.x 版本
  • Ubuntu 20.04.x 版本
  • Ubuntu 22.04.x 版本
  • Ubuntu 22.10.x 浏览器
  • Ubuntu 23.04.x 版本
  • Debian 10 版本
  • Debian 11(仅当您选择自定义模式安装时!!)

xrdp-installer-1.4.7.sh 脚本可以针对以下 Ubuntu 风格运行,但我们不能保证一切都会按预期工作(尽力而为)

  • Kubuntu(20.04 及更高版本)
  • Ubuntu Budgie(20.04 及更高版本)
  • Ubuntu Mate(20.04 及更高版本)
  • Xubuntu(20.04 及更高版本)
  • Lubuntu(20.04 及更高版本)
  • Linux Mint(现阶段处于实验阶段)
  • Pop!_OS 22.04

注意 : 如果您正在运行这些发行版中的任何一个,并且希望帮助我们改进对这些发行版的支持,请下载并测试脚本。不要犹豫,分享您的发现,以便我们可以尝试将它们合并到下一个版本中

第 1 步 – 下载脚本

要下载脚本,您有多种选择。您可以从终端发出以下命令

wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.7.zip

您也可以简单地使用浏览器并单击链接下载脚本:

  •   xrdp-installer-1.4.7.zip 

第 2 步 – 解压缩文件

下载包含该文件的 zip 包后,您需要先将其解压缩。要解压缩包,您可以使用终端控制台并发出以下命令

unzip xrdp-installer-1.4.7.zip 

您还可以使用 GUI 和 Nautilus 文件管理器选择下载的软件包,右键单击它并选择选项 Extract Here

第 2 步 – 在脚本上设置 Execute Right

将 xrdp-installer-1.4.7.sh 脚本下载到您的系统,提取内容并将其标记为可执行 。为此,请在终端控制台中执行以下操作

chmod +x  ~/Downloads/xrdp-installer-1.4.7.sh

注意 : 调整 xrdp-Installer-1.4.7.sh 脚本的路径以反映您的环境

第 2 步 – 以普通用户身份运行

该脚本需要以普通用户身份运行。该脚本将开始运行,并在启动 sudo 操作时提示您输入密码。如果您以 root 身份或使用 sudo 命令运行脚本,则 root 用户的 Download 文件夹不存在,并且脚本无法按预期运行。为了克服这种情况,脚本还会检查哪个用户正在执行脚本。如果脚本在 sudo 或 root 账户下运行,则会显示一条警告消息,并且脚本不会执行

第 3 步 – 开关和参数

xrdp-installer-1.4.7.sh 脚本可以按原样执行(没有参数或开关)。这将执行 xRDP 的标准(和基本)安装。将不提供声音或自定义 xrdp 登录脚本。但是,远程桌面、驱动器重定向和剪贴板重定向将在此安装模式下可用。

xrdp-installer-1.4.7.sh 脚本还接受一些附加参数,这些参数将有助于自定义 xrdp 安装并启用其他功能。该脚本提供以下参数

--help or -h          => will display a basic help menu
--sound or -s         => will enable sound redirection 
--loginscreen or -l   => will customize the xRDP login screen 
--remove or -r        => will remove the xrdp package 
--custom or -c        => will perform a custom installation (i.e. compiled from sources)

第 4 步 – 使用脚本执行 xRDP 安装

以下部分将提供有关如何使用脚本的一些示例和方案.....

标准安装 – 无参数

如上所述,您可以决定使用 Ubuntu 存储库中提供的默认 xrdp 包并执行基本安装,这将为您提供远程桌面功能,并且还将自定义远程会话。该脚本将确保在用户本地或远程登录时保持相同的外观。

要执行标准安装,请执行不带参数的脚本。打开终端控制台,浏览到脚本的下载位置,然后发出以下命令

 ./xrdp-installer-1.4.7.sh

当 xrdp 安装包启动时,系统会要求您输入密码。 提供密码并继续安装。等待脚本完成。完成后,计算机不会自动重启,因此您可以查看脚本执行的操作。

带参数的标准安装

该脚本可用于执行标准安装,并且仍会传递一些参数以充分利用 xRDP 软件包及其功能。对于所有 Ubuntu 版本,我们可以使用以下参数组合

./xrdp-installer-1.4.7.sh -s      (this would enable the sound redirection) 
./xrdp-installer-1.4.7.sh -l      (this would customize the xrdp login screen -see here)

显然,您可以组合开关 (任何顺序) 以启用更多功能

./xrdp-installer-1.4.7.sh -s -l      (this would enable the sound redirection and customize the xrdp login screen)

重要说明

该脚本可以在同一台计算机上多次运行。如果您最初运行脚本时没有使用任何参数,但后来决定启用其他功能,则可以重新执行该脚本并启用其他功能。

自定义安装 – 默认安装

自定义安装脚本非常灵活。自定义安装意味着该脚本将从源二进制文件编译 xrdp 包。自定义安装脚本始终使用可用的最新 xrdp 软件包版本

要执行自定义安装,您至少需要传递一个参数。以下命令行向您展示如何执行自定义安装

./xrdp-installer-1.4.7.sh -c     (this would perform a custom installation but will not enabled adv features like sound redirection or custom login screen)

自定义安装 – 其他选项

如果用户想要启用其他功能,您将传递一些其他参数,如以下示例所示

./xrdp-installer-1.4.7.sh -c -s     (this would perform a custom install and enable sound redirection)
./xrdp-installer-1.4.7.sh -c -l     (this would perform a custom install and customize xrdp login screen)
./xrdp-installer-1.4.7.sh -c -l -s  (this would perform a custom install, enable sound and customize login screen)

重要说明

该脚本可以在同一台计算机上多次运行。如果您最初运行脚本时没有使用任何参数,但后来决定启用其他功能,则可以重新执行该脚本并启用其他功能。

删除安装选项

此版本的脚本还附带了删除 xRDP 包的选项。仅当您使用此版本的脚本执行安装时,才应使用 removal 选项。要删除 xrdp 包,您只需执行以下命令

./xrdp-installer-1.4.7.sh -r     (to remove the xrdp packages)

第 5 步 – 测试您的配置

在脚本运行之后,在重启/关闭和启动过程之后,是时候测试一下了,看看你是否真的可以执行与 Ubuntu 机器的流畅远程连接。启动您最喜欢的 rdp 客户端,只需输入您的凭据即可开始测试您的安装。如果一切正常,您将看到一个类似的桌面界面,其中使用了 Gnome Desktop 并且可以看到 Dock。

局限性

在标准安装和自定义安装之间切换

此版本的脚本可以在同一台计算机上多次运行。但是,由于这种新行为,您无法执行标准安装,然后决定执行自定义安装。选择安装模式后,您将不得不坚持它。这有点由脚本检查。

因此,如果您已执行标准安装,但之后您可能希望使用自定义安装选项,则脚本将忽略该请求。如果要从标准安装模式切换到自定义模式(反之亦然),正确的过程是

  • 删除 XRDP(使用 xrdp-installer-1.4.7.sh -r 选项)
  • 使用您选择的安装模式(标准或自定义安装模式)执行新安装

已知问题、已修复的问题和限制

已知问题

连接后立即黑屏或断开连接

正如多次提到和解释的那样,当本地和远程同时使用同一用户帐户时,将发生(或可能发生)这种情况。换句话说,该问题与同一用户帐户已在本地登录并同时尝试远程连接这一事实有关。使用 xRDP 软件解决方案,可以在本地或远程登录特定的用户帐户,但不能同时登录两者。

过去,我们提供了一些解决方法,可用于允许同一用户进行多个连接。但是,在 Ubuntu 22.04 中,我们遇到了一些其他问题,我们再次强烈建议不要使用这些解决方法.....

有一些解决方法 (按原样提供) 来尝试修复问题。我们不建议使用它们!使用风险自负 !!

最后的注释

这就是这篇文章的内容!

由于 Ubuntu 23.04 问题,脚本版本尚未经过广泛测试。为了保持可用性,应将脚本视为维护版本。如果您有时间或想帮助我们创建最好的 xRDP 安装程序脚本,请下载脚本、测试它并提供建设性的反馈。如果您发现脚本存在错误或问题,请告诉我们,以便我们尝试修复它。

我们已经在开发下一个版本,其中将引入更多更改......

相关文章:

xRDP – 在 Ubuntu 18.04、20.04、22.04、22.10、23.04(脚本版本 1.4.7)上轻松安装 xRDP

最新脚本Repository | c-nergy.be 概述 到目前为止,您应该知道 xrdp-installer 脚本旨在简化 xRDP 在 Ubuntu 操作系统上的安装和配置后操作。xRDP 是一款在 Linux 上启用远程桌面服务的软件。这意味着 Windows 用户可以使用他们的远程桌面客户端 (mst…...

[Linux网络编程]04-多进程/多线程并发服务器思路分析及实现(进程,信号,socket,线程...)

一.思路 实现一个服务器可以连接多个客户端,每当accept函数等待到客户端进行连接时 就创建一个子进程; 核心思路:让accept循环阻塞等待客户端,每当有客户端连接时就fork子进程,让子进程去和客户端进行通信,父进程用于…...

《OpenCV计算机视觉》—— 年龄与性别预测

结合以下链接中的文章有助于理解此篇案例: OpenCV中的 cnn 模块 https://blog.csdn.net/weixin_73504499/article/details/142965441?spm1001.2014.3001.5501 此案例是通过使用OpenCV中的cnn模块来调用别人已经训练好的深度学习模型,此篇案例中用到了…...

详解23种设计模式——第一部分:概述+创建型模式

目录 1. 概述 2. 创建型模式 2.1 简单(静态)工厂模式 2.1.1 介绍 2.1.2 实现 2.2 工厂模式 2.3 抽象工厂模式 2.4 单例模式 2.4.1 饿汉模式 2.4.2 懒汉模式 2.4.3 线程安全的懒汉式 2.4.4 DCL单例 - 高性能的懒汉式 2.5 建造者模式 2.6 原…...

semi-Naive Bayesian(半朴素贝叶斯)

semi-Naive Bayesian(半朴素贝叶斯) 引言 朴素贝叶斯算法是基于特征是相互独立这个假设开展的(为了降低贝叶斯公式: P ( c ∣ x ) P ( c ) P ( x ∣ c ) P ( x ) P(c|x) \frac {P(c)P(x|c)}{P(x)} P(c∣x)P(x)P(c)P(x∣c)​中后验概率 P …...

大语言模型(LLM)入门级选手初学教程

链接:https://llmbook-zh.github.io/ 前言: GPT发展:GPT-1 2018 -->GPT-2&GPT-3(扩大预训练数据和模型参数规模)–> GPT-3.5(代码训练、人类对齐、工具使用等)–> 2022.11 ChatG…...

HTML 实例/测验之HTML 基础一口气讲完!(o-ωq)).oO 困

HTML 基础 非常简单的HTML文档 <!DOCTYPE html> <html><head><title>页面标题(w3cschool.cn)</title></head><body><h1>我的第一个标题</h1><p>我的第一个段落。</p></body> </html> 输出&a…...

c语言基础程序——经典100道实例。

c语言基础程序——经典100道实例 001&#xff0c; 组无重复数字的数002&#xff0c;企业发放的奖金根据利润提成003&#xff0c;完全平方数004&#xff0c;判断当天是这一年的第几天005&#xff0c;三个数由小到大输出006&#xff0c;输出字母C图案007&#xff0c;特殊图案008&…...

火星求生CE修改金钱,无限资金

由于火星求生前期没有资金非常难玩&#xff0c;想通过修改资金渡过前期&#xff0c;网上找了一圈修改器&#xff0c;只有修改无限声望和无限科研&#xff0c;就是没有无限资金&#xff0c;于是自己用CE修改 教程 首先查看自己资金是多少M&#xff0c;如下图我是22430M资金&…...

linux 内存管理-slab分配器

伙伴系统用于分配以page为单位的内存,在实际中很多内存需求是以Byte为单位的,如果需要分配以Byte为单位的小内存块时,该如何分配呢? slab分配器就是用来解决小内存块分配问题,也是内存分配中非常重要的角色之一。 slab分配器最终还是由伙伴系统分配出实际的物理内存,只不过s…...

docker-compose部署gitlab(亲测有效)

一.通过DockerHub拉取Gitlab镜像 docker pull gitlab/gitlab-ce:latest 二.创建目录 mkdir -p /root/tool/gitlab/{data,logs,config} && cd /root/tool/gitlab/ 三.编辑DockerCompose.yaml文件 vim /root/tool/gitlab/docker-compose.yml version: "3&quo…...

Leetcode 赎金信

利用hash map做 java solution class Solution {public boolean canConstruct(String ransomNote, String magazine) {//首先利用HashMap统计magazine中字符频率HashMap<Character, Integer> magazinefreq new HashMap<>();for(char c : magazine.toCharArray())…...

S7--环境搭建基本操作

1.修改蓝牙名称和地址 工程路径:$ADK_ROOT\adk\src\filesystems\CDA2\factory_default_config\ 在subsys7_config5.htf中 DeviceName = "DEVICE_NAME“ # replace with your device name BD_ADDRESS=[00 FF 00 5B 02 00] # replace with your BD address 2.earbud工程修改…...

webAPI中的排他思想、自定义属性操作、节点操作(配大量案例练习)

一、排他操作 1.排他思想 如果有同一组元素&#xff0c;我们想要某一个元素实现某种样式&#xff0c;需要用到循环的排他思想算法&#xff1a; 1.所有的元素全部清除样式 2.给当前的元素设置样式 注意顺序能不能颠倒&#xff0c;首先清除全部样式&#xff0c;再设置自己当前的…...

101、QT摄像头录制视频问题

视频和音频录制类QMediaRecorder QMediaRecorder 通过摄像头和音频输入设备进行录像。 注意: 使用Qt多媒体模块的摄像头相关类无法在Windows平台上进行视频录制&#xff0c;只能进行静态图片抓取但是在Linux平台上可以实现静态图片抓取和视频录制。 Qt多媒体模块的功能实现是依…...

FairGuard游戏加固全面适配纯血鸿蒙NEXT

2024年10月8日&#xff0c;华为正式宣布其原生鸿蒙操作系统 HarmonyOS NEXT 进入公测阶段&#xff0c;标志着其自有生态构建的重要里程碑。 作为游戏安全领域领先的第三方服务商&#xff0c;FairGuard游戏加固在早期就加入了鸿蒙生态的开发&#xff0c;基于多项独家技术与十余年…...

鲸信私有化即时通信如何平衡安全性与易用性之间的关系?

即时通信已经成为我们生活中不可或缺的一部分。从日常沟通到工作协作&#xff0c;每一个信息的传递都承载着信任与效率。然而&#xff0c;随着网络安全威胁日益严峻&#xff0c;如何在享受即时通信便捷的同时&#xff0c;确保信息的私密性与安全性&#xff0c;成为了摆在我们面…...

vivado 接口带宽验证

存储器接口 使用赛灵思存储器 IP 时需要更多的 I/O 管脚分配步骤。自定义 IP 之后&#xff0c;您可采用 Vivado IDE 中的细化 (elaborated) 或综 合 (synthesized) 设计分配顶层 IP 端口到物理封装引脚。同每一个存储器 IP 关联的所有端口都被纳入一个 I/O 端口接口…...

Qt中使用线程之QThread

使用Qt中自带的线程类QThread时 1、需要定义一个子类继承自QThread 2、重写run()方法&#xff0c;在run方法中编写业务逻辑 3、子类支持信号槽 4、子类的构造函数的执行是在主线程进行的&#xff0c;而run方法的执行是在子线程中进行的 常用方法 静态方法 获取线程id 可…...

多IP连接

一.关闭防火墙 systemctl stop firewalld setenforce 0 二.挂在mnt mount /dev/sr0 /mnt 三.下载nginx dnf install nginx -y 四.启动nginx协议 systemctl start nginx 五.修改协议 vim /etc/nginx/nginx.conf 在root前加#并且下一行添加 root /www:&#xff08;浏…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...