Ubuntu 16.04 + xrdp + Xfce 实现 Windows 远程桌面连接 Linux 配置及使用中出现的问题

2023-05-16

目录

  • - 配置步骤
  • - 有关问题
    • 1. Unable to load a failsafe session
    • 2. `Tab` 键无法使用
    • 3. xrdp 连接相同的登陆会话
    • 4. xfce 退出屏保
    • 5. 在Ubuntu 20.04 上使用Xrdp(远程桌面)
    • 6. 在Ubuntu 18.04 上安装 Xrdp 服务器(远程桌面)
    • 7. Ubuntu 18.04 配置xrdp后出现 thinclient_drives文件夹
    • 8. 黑屏
  • - 进阶资料

- 配置步骤

可参考[1] [2] [3] [4],对服务器进行如下配置:

1. 安装xrdp

sudo apt-get install xrdp

以vnc方式

sudo apt-get install vnc4server tightvncserver

或者使用xorg方式

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

2. 安装Xfce桌面环境

sudo apt-get install xubuntu-desktop

或者直接在前面xorg方式中已经安装xfce。

3. 配置xfce4

echo "xfce4-session" >~/.xsession

创建.xsession文件并写入内容。
4. 配置xrdp

sudo gedit /etc/xrdp/startwm.sh

或者

sudo vim /etc/xrdp/startwm.sh

./etc/X11/Xsession (有的是 exec /bin/bash /etc/X11/Xsession) 前一行插入

xfce4-session

5. 重启 xrdp

sudo service xrdp restart
# 或者重新启动 Xrdp 服务:
sudo systemctl restart xrdp

理论上经过这些之后就可以使用远程桌面连接mstsc.exe,连接之后类型选择sesman-xvnc,填写用户名和密码之后就能连接到 Linux 系统的远程桌面。

- 有关问题

1. Unable to load a failsafe session

现象:连接时出现以下界面。在这里插入图片描述
即:

Unable to determine failsafe session name. Possible causes: xfconfd isn’t running (D-bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (msut include “/etc”), or xfce4-session is installed incorrectly.

原因:该用户对某些文件夹没有读写权限。
参考:https://bbs.archlinux.org/viewtopic.php?id=152171
解决方案: 使得该用户获得读写权限,可参考 [4] :
假设我的文件夹在主目录里,地址为 /var/home/dengchao/
则在终端输入:

chmod  777 /var/home/dengchao/

用户获取读写权限后,再重启xrdp服务:

sudo service xrdp restart

2. Tab 键无法使用

使用时发现Tab 键无法使用,原因是快捷方式被占用,解决方案:

  • 直接在远程桌面中设置,打开菜单->设置->窗口管理器,或者在终端中输入xfwm4-settings打开(xfwm4就是xfce4 window manger的缩写)。
  • 选择键盘,可以看到窗口快捷键中动作一列有“切换同一应用程序的窗口”选项。
  • 将该选项的快捷键清除后关闭窗口即可。

缺省的设置,该项的值为 super+制表,制表键就是 Tab键。这样修改后马上可以使用了。
参考资料:[1]

3. xrdp 连接相同的登陆会话

参考博文:xrdp 登录保持相同的登陆会话 (xfce-session)

4. xfce 退出屏保

有的时候会遇到 xfce 进入屏保模式,可以用鼠标点一下或者按下 enter 键。

5. 在Ubuntu 20.04 上使用Xrdp(远程桌面)

参考 如何在Ubuntu 20.04 上安装 Xrdp 服务器(远程桌面)
要点:

  1. Ubuntu 20.04 一般自带了桌面,无需安装Xfce;
  2. 安装 ubuntu-desktop 远程时, Ubuntu 本机不能用用户名登录,否则桌面会是漆黑一片。

6. 在Ubuntu 18.04 上安装 Xrdp 服务器(远程桌面)

参考 如何在 Ubuntu 18.04 上安装 Xrdp 服务器(远程桌面)
要点:

  1. Ubuntu 18.04 需要安装远程桌面;
  2. 安装ubuntu-desktop 远程时 Ubuntu 本机不能用用户名登录,否则桌面会是漆黑一片。

7. Ubuntu 18.04 配置xrdp后出现 thinclient_drives文件夹

参考 彻底删除 thinclient_drives ,要点:

  1. 修改 /etc/xrdp/sesman.ini 文件
sudo vim /etc/xrdp/sesman.ini

FuseMountName=thinclient_drives 修改为 FuseMountName=xxxx/thinclient_drives,其中 xxxx 是任意一个不存在的位置(其实没有这个文件夹),如改为 FuseMountName=.xrdp/thinclient_drives

  1. 删除 thinclient_drives 文件夹
sudo umount thinclient_drives
sudo rm -rf thinclient_drives

8. 黑屏

参考 完美方案——解决XRDP连接黑屏,以及桌面优化!,

  1. 打开文件
sudo vim /etc/xrdp/startwm.sh
  1. 添加配置
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
  1. 重启xrdp服务
sudo systemctl restart xrdp.service

- 进阶资料

  1. xfce桌面环境美化教程
  2. Xfce (简体中文) - ArchWiki
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 16.04 + xrdp + Xfce 实现 Windows 远程桌面连接 Linux 配置及使用中出现的问题 的相关文章

  • mod_perl 无法看到 /tmp 中的文件

    我有一些 mod perl 代码试图访问 tmp 下的文件 但它抛出 没有这样的文件或目录 错误 我在代码中添加了一个 ls al tmp 来查看 Perl 在目录中看到的内容 它只给了我 和 drwxrwxrwt 2 root root
  • 警告构建使用导出符号的内核模块

    我有两个内核模块 例如 modA 和 modB modA 导出一个符号EXPORT SYMBOL symA modB 使用它 我有标题modA h对于modA extern void symA int param and in modB c
  • 在 Windows 上为 Bitbucket 设置 SSH 密钥

    首先 我对 git repos 和命令行绝对是菜鸟 我在 Bitbucket 上有仓库 我基本上希望能够通过 gitbash 推送到存储库 而无需每次输入密码 我拥有的 Bitbucket 上的存储库已设置好代码 克隆存储库的本地目录 通过
  • 如何从powershell获取主机名?

    我如何获得hostname https stackoverflow com q 42014215 262852 for dur来自 powershell PS home thufir powershell gt PS home thufir
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • 查找当前打开的文件句柄数(不是 lsof )

    在 NIX系统上 有没有办法找出当前正在运行的进程中有多少个打开的文件句柄 我正在从正在运行的进程中寻找在 C 中使用的 API 或公式 在某些系统上 见下文 您可以在 proc pid fd 中对它们进行计数 如果不属于其中之一 请参阅下
  • PostgreSQL docker:“无法绑定 IPv6 套接字:无法分配请求的地址”

    编辑2 经过很长一段时间 解决了 请参阅下面的答案 编辑 我很遗憾地说 从昨天到今天 问题 自行 消失了 而我没有做任何事情 在这里学习很棒的非确定性课程 额外的乐趣 无法绑定 IPv6 套接字 错误仍然出现在错误日志中 因此这可能根本不是
  • 并发 I/O - 缓冲区损坏、块设备驱动程序

    我开发块分层设备驱动程序 所以 我拦截WRITE请求并加密数据 并解密数据end bio 例行程序 在处理和READ要求 所以在单流中一切正常 但是 如果尝试同时从两个或更多进程执行 I O 我会遇到缓冲区内容损坏的情况 我没有任何本地存储
  • 为什么不鼓励在 Windows 上将 PPM perl 模块与 Strawberry perl 一起使用?

    任何人都可以解释为什么人们会发表此评论吗 我在 stackoverflow 上看到了几个线程 像这个 https stackoverflow com questions 6643939 installing modules using st
  • 在Linux中执行jar文件[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我创建了一个可执行的 Java jar 文件 也就是说 我将 java 程序正确打包到 jar 文件中 包括 META INF MANIFEST 文件
  • Git - 致命:无法获取当前工作目录?

    When I git clone从回购协议中 我得到 fatal Could not get current working directory No such file or directory 我该怎么办 我检查了服务器并发现 git文
  • 如何获取在记事本中打开的文件的文件名和路径?

    是否可以获取在记事本中打开的文件的名称和路径 我已经有了 Notepad exe 的 ProcessId 谢谢 纳夫尼特 它是标题栏的一部分 所以需要获取窗口句柄 然后调用Win API函数GetWindowText 这可能就是您想要的 使
  • pip 找不到满足要求的版本 django==2.2.1

    我刚刚将操作系统更改为 linux 并且想安装 django 但我无法安装最新版本的 django 我努力了 pip install django 但是它安装了 django 1 11 11 这不是我需要的 我还将我的 pip 升级到了 1
  • 如何在 Windows Docker 容器中启动 PowerShell (x86)?

    我正在尝试从 PowerShell 启动 Windows Docker 容器中的 PowerShell x86 但它不会启动新的 shell 我正在从 AWS Windows EC2 运行 DockerWindows Server 2019
  • 通过 Python 与 Windows 控制台应用程序交互

    我在 Windows 上使用 python 2 5 我希望通过 Popen 与控制台进程交互 我目前有一小段代码 p Popen console app exe stdin PIPE stdout PIPE issue command 1
  • 如何使用 bash 粘贴来自单独文件的列?

    我想用分隔符 合并不同的列表 第一个列表有 2 个单词 cat first one who 第二个列表有 10000 个单词 cat second languages more simple advanced home expert tes
  • 使用inotify监控文件

    我正在使用 inotify 来监视本地文件 例如使用 root temp inotify add watch fd root temp mask 删除该文件后 程序将被阻止read fd buf bufSize 功能 即使我创建一个新的 r
  • 如何从 Windows 批处理文件中的 ECHO 字符串中去除引号?

    我正在创建一个 Windows 批处理文件 但我必须 ECHO 一个大型复杂字符串 因此我必须在两端加上双引号 问题是引号也被回显到我正在写入的文件中 如何 ECHO 这样的字符串并去掉引号 UPDATE 我花了两天的时间研究这个问题 终于
  • 堆栈独立的C/C++蓝牙API?

    我想知道是否有适用于 Windows XP Vista 7 x86 和 x64 的堆栈独立 C C 蓝牙 api 我的目标是创建连接并通过蓝牙发送 接收一些时间关键的数据 我的研究给了我以下选择以及这项任务的缺点 用于蓝牙的 Windows
  • 使用 std::string 导致 Windows“找不到入口点”[重复]

    这个问题在这里已经有答案了 当我用 G C C 编译它时 include

随机推荐

  • centos7安装mysql8.0.31版本

    目录 1 卸载mariadb2 下载3 安装4 修改 etc my cnf5 启动6 修改密码 1 卸载mariadb 因centos7默认安装了mariadb 会造成依赖冲突 xff0c 按下列方式进行卸载 xff1a root 64 c
  • 10-204 在员工表中查询所有男性员工的编号,姓名和入职日期,结果按员工编号升序排列

    分数 3 全屏浏览题目 切换布局 作者 刘冬霞 单位 山东理工大学 查询所有男性员工的编号 xff0c 姓名和入职日期 xff0c 结果按员工编号升序排列 表结构 员工 xff08 员工编号 文本型 xff0c 姓名 文本型 xff0c 性
  • Ubuntu18.04安装cuDNN

    Ubuntu18 04安装cuDNN 一 xff1a 安装准备 xff08 1 xff09 选择cudnn版本 官网cudnn链接 xff1a https developer nvidia com rdp cudnn archive 选择c
  • 自动写代码?别闹了!

    大家好 xff0c 我是良许 这几天 xff0c GitHub 上有个很火的插件在抖音刷屏了 Copilot 这个神器有啥用呢 xff1f 简单来讲 xff0c 它就是一款由人工智能打造的编程辅助工具 我们来看看它有啥用 首先就是代码补全功
  • C++构造函数的调用

    对象特性 构造函数和析构函数 构造函数 没有回值也不写void 函数值和类名相同 构造函数可以有参数 xff0c 因此可以发生重载 程序在调用对象的时候自动调用构造 xff0c 无须手动调用 xff0c 只能调用一次 析构函数语法 析构函数
  • Python基础---output【print()】

    一 输出字符串 1 一般字符串 gt gt gt print 34 My name is Pegga 34 My name is Pegga 2 输出带单引号 xff08 xff09 的字符串 方法一 xff1a gt gt gt prin
  • sqlite3命令读出sqlite3格式的文件内容案例

    Author Samson Date 07 09 2014 Test platform 3 11 0 11 generic 19 Ubuntu GNU bash version 4 2 45 sqlite是一个嵌入式的SQL数据库引擎 xf
  • Debian改变系统语言环境(中文切换到英文)实例

    Author Samson Date 08 15 2015 Test platform gcc 4 8 2 GNU bash 4 3 11 1 release x86 64 pc linux gnu Debian 8 Debian下如何设置
  • nest.js创建以及error相关问题

    开始之前 xff0c 你可以使用 Nest CLI 创建项目 xff0c 也可以克隆一个 starter project xff08 两者的结果是一样的 xff09 若要使用 Nest CLI 构建项目 xff0c 请运行以下命令 这将创建
  • java读取jar包内置文件或同目录下配置文件

    java读取jar包内置文件或同目录下配置文件 读取jar包同目录下文件 java程序在打成jar包后 xff0c jar内的文件就不再具备文件系统级别的路径 xff0c 因此要读取jar包同目录下的文件 xff0c 就需要特殊处理 这里使
  • MFC使用winpcap 抓包 pcap_compile使用

    使用Winpcap编写 xff1a 最近工作需要抓取傻瓜交换机的MAC xff0c 由于没有IP只能使用Winpcap抓包工具来实现 本人初学者 xff0c 大佬请绕行 a 先获取电脑的网卡信息 在SwithCheckMacDlg h文件中
  • 【c++】map用法详解

    map是c 43 43 标准库中定义的关联容器 xff0c 是关键字 xff08 key xff09 值 xff08 value xff09 对的结合体 本文记录其用法与案例 1 头文件 include lt map gt stl头文件不带
  • 定制 kali nethunter内核 (官方不支持的手机)

    Kali Linux NetHunter内核编译指南 发表于 2021 09 12 更新于 2022 10 08 分类于 kali 阅读次数 xff1a 阅读次数 xff1a 1890 Valine xff1a 2 本文字数 xff1a 1
  • QTreeWidget设置让节点之间显示连线

    ui gt treeWidget gt setStyle QStyleFactory create 34 windows 34
  • 什么是系统调用?为什么要用系统调用?

    什么是系统调用 Linux内核中设置了一组用于实现各种系统功能的子程序 xff0c 称为系统调用 用户可以通过系统调用命令在自己的应用程序中调用它们 从某种角度来看 xff0c 系统调用和普通的函数调用非常相似 区别仅仅在于 xff0c 系
  • 字符集和编码的故事

    作者 xff1a haoxiaobo 转载 xff1a http www cnblogs com haoxiaobo p 6723498 html 快下班了 xff0c 爱问问题的小朋友Nico又问了一个问题 xff1a sqlserver
  • Ubuntu下提示/usr/bin/env: node: 没有那个文件或目录

    由于Ubuntu下已经有一个名叫node的库 xff0c 因此Node js在ubuntu下默认叫nodejs xff0c 需要额外处理一下 http stackoverflow com questions 18130164 nodejs
  • 华为SNMP配置

    网络故障第一时间是客户报障 xff0c 不能全局发现问题 xff0c 面向企业园区网络 xff0c 还一款面向运营商的 SNMP架构 xff1a 分为NMS和Agent两部分 xff08 agent读取内部MIB库 xff09 国际标准定义
  • Hive SQL优化(MR引擎)

    hive开启动态分区 set hive exec dynamic partition 61 true set hive exec dynamic partition mode 61 nonstrict Hive在基于输入文件大小的前提下将普
  • Ubuntu 16.04 + xrdp + Xfce 实现 Windows 远程桌面连接 Linux 配置及使用中出现的问题

    目录 配置步骤 有关问题1 Unable to load a failsafe session2 96 Tab 96 键无法使用3 xrdp 连接相同的登陆会话4 xfce 退出屏保5 在Ubuntu 20 04 上使用Xrdp xff08