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

ToDesk 远控 Ubuntu 错误:您需自行安装X11桌面环境

当前主机确认:

当前已有 X11 桌面环境,显示 Xorg 正在运行

被控 Ubuntu 主机已显示被控弹窗,说明网络联通,ToDesk 正常运行

在 Ubuntu 查看 2 minutes age 的 ToDesk 日志:

sudo journalctl \ -u todeskd.service \ --since "2 minutes ago" \ --no-pager | grep -Ei 'authorization|display|x11|capture|error|failed'

输出:

X月 X 21:03:21 mc ToDesk_Service[44714]: Authorization required, but no authorization protocol specified

确认:

ToDesk_Service 已经找到 X11 显示器,但没有拿到访问:0的 X11 授权信息

解决方案:

在 Ubuntu 终端执行:

echo "TYPE=$XDG_SESSION_TYPE" echo "DISPLAY=$DISPLAY" echo "XAUTHORITY=$XAUTHORITY" xhost +SI:localuser:root

xhost +SI:localuser:root只允许本机 root 用户连接 X Server,比不安全的xhost +范围小得多;X11 支持通过localuser方式授权本地用户。)

显示:

localuser:root being added to access control list

重启:

sudo systemctl restart todeskd.service sleep 3 sudo journalctl -u todeskd.service --since "10 seconds ago" --no-pager

重连,连接成功

重启后保持

从前面的日志看,成功的关键是:

  1. todeskd能找到DISPLAY=:0/home/mc/.Xauthority

  2. 当前 X11 会话允许 root 身份的 ToDesk 服务访问屏幕:

xhost +SI:localuser:root

其中第 1 项可以写进 systemd;第 2 项需要在每次 GNOME/X11 登录后自动执行,因为xhost授权通常会随图形会话结束而失效。

1. 固化 ToDesk 服务的 X11 环境

执行一次:【此处 mc 为用户名,替换为自己的用户名】

sudo mkdir -p /etc/systemd/system/todeskd.service.d sudo tee /etc/systemd/system/todeskd.service.d/x11.conf >/dev/null <<'EOF' [Service] Environment="DISPLAY=:0" Environment="XAUTHORITY=/home/mc/.Xauthority" EOF sudo systemctl daemon-reload sudo systemctl enable todeskd.service sudo systemctl restart todeskd.service

验证:

sudo systemctl show todeskd.service -p Environment

应该包含:【此处 mc 为用户名,替换为自己的用户名】

DISPLAY=:0 XAUTHORITY=/home/mc/.Xauthority

2. 每次登录 GNOME 时自动添加 X11 授权

创建启动脚本:

mkdir -p ~/.local/bin ~/.config/autostart cat > ~/.local/bin/todesk-x11-prepare.sh <<'EOF' #!/bin/sh export DISPLAY=:0 export XAUTHORITY="$HOME/.Xauthority" # 等待 Xorg 和认证文件准备完成 i=0 while [ "$i" -lt 30 ]; do if [ -S /tmp/.X11-unix/X0 ] && [ -f "$XAUTHORITY" ]; then break fi i=$((i + 1)) sleep 1 done /usr/bin/xhost +SI:localuser:root EOF chmod +x ~/.local/bin/todesk-x11-prepare.sh

创建 GNOME 自动启动项:

cat > ~/.config/autostart/todesk-x11-prepare.desktop <<'EOF' [Desktop Entry] Type=Application Name=ToDesk X11 Access Comment=Allow the ToDesk system service to access the local X11 session Exec=/home/mc/.local/bin/todesk-x11-prepare.sh Terminal=false X-GNOME-Autostart-enabled=true NoDisplay=true EOF

以后每次mc登录 Ubuntu 桌面,都会自动执行:

xhost +SI:localuser:root

不要改成:

xhost +

后者会过度放宽 X11 访问权限。

3. 确保一直使用 X11,不要切回 Wayland

检查/etc/gdm3/custom.conf

sudo nano /etc/gdm3/custom.conf

确保存在:

[daemon] WaylandEnable=false

然后:

sudo systemctl restart gdm3

注意:这会结束当前桌面会话。现在已经正常时,不必立即重启 GDM,可以等下次正常重启机器。

登录后验证:

echo "$XDG_SESSION_TYPE"

应输出:

x11

4. 无人值守重启后的问题

上面的自动授权只有在mc登录 GNOME 后才会执行。如果电脑重启后停留在登录界面,可能还不能稳定远控。

需要无人值守重启后自动恢复,可选择开启自动登录:

sudo nano /etc/gdm3/custom.conf

配置为:【此处 mc 为用户名,替换为自己的用户名】

[daemon] WaylandEnable=false AutomaticLoginEnable=true AutomaticLogin=mc

这样重启后流程会自动完成:

启动 Ubuntu → 自动登录 mc → 建立 X11 桌面 → 执行 xhost 授权 → ToDesk 可以采集桌面

自动登录会降低物理安全性。若机器所在位置不安全,建议不开启,并在重启后先本地登录一次。

5. 现在进行一次完整重启测试

趁你在 Ubuntu 主机旁边,建议直接测试:

sudo reboot

重启并进入桌面后检查:

echo "session=$XDG_SESSION_TYPE display=$DISPLAY" xhost | grep -F 'SI:localuser:root' && echo "ToDesk X11 授权正常" sudo systemctl is-active todeskd.service

期望看到:

session=x11 display=:0 SI:localuser:root ToDesk X11 授权正常 active

随后再从 Windows 发起连接。

日后连接失败时的一键恢复命令

通过 SSH 执行:【此处 mc 为用户名,替换为自己的用户名】

DISPLAY=:0 \ XAUTHORITY=/home/mc/.Xauthority \ xhost +SI:localuser:root sudo systemctl restart todeskd.service

如果仍失败,确认本地图形用户还处于登录状态:

loginctl list-sessions

应存在类似:

mc seat0 tty7 active

完成以上配置后,只要保持X11 会话、mc已登录、ToDesk 服务运行,下次连接通常不需要再手动执行授权。


使用当前最新的 ToDesk,Ubuntu 24.04.3 LTS

http://www.jsqmd.com/news/1164611/

相关文章:

  • yolo darknet的启示(突破6bn+2residual,cudnn实现CBL)
  • CS域与PS域:电路交换与分组交换的5大核心性能指标对比
  • Spring 整合 MyBatis + 数据库连接池
  • 工业级负载控制方案:TPD2015FN与PIC18F86K22应用
  • EasyOCR 1.7.1 GPU加速配置:CUDA 11.8 + PyTorch 2.0 环境搭建 3 步指南
  • 数据库的“大脑中枢”:深度解析Oracle控制文件的作用与保护策略
  • 用 OpenClaw 做网页调研:搜索、打开网页、提取信息和生成报告
  • 非标机柜加工厂家满足哪些行业定制需求?
  • Spring Boot 3.x 项目实践:4 个场景应用迪米特法则降低耦合度
  • Krea 2身份保留功能:AI绘画角色一致性技术解析与实践
  • 非技术岗位考什么证书更实用?别盲目跟风
  • BQ25887锂电平衡充电方案与PIC18LF4553实现
  • 网络安全/信息安全(白帽黑客)自学经历
  • UABEA性能优化解析:Unity资源提取效率提升1200%的底层原理与实践
  • 考研数学、力扣算法 与 大模型底层研究、SCI公式、模型自研的核心关联
  • 3分钟搞定B站缓存视频:m4s-converter无损转换技术详解
  • UE4垃圾回收机制深度解析:从GUObjectArray到异步Purge的性能优化实践
  • 【世界杯中的AI】(2026-07-10)2-0!法兰西完胜摩洛哥,“AI神预测”抢镜,首届AI世界杯惊现裁判第一视角!
  • Excel 365/2021 动态数组函数实战:FILTER、XLOOKUP、UNIQUE 组合解决 5 类数据清洗难题
  • 伊苏X 北境历险|中字-国语|-磐石怒吼-破天战歌+全DLC+预购特典|解压即撸|
  • LV3296与PIC18F45K80在工业数据采集中的协同应用
  • 全国用电负荷创历史新高,国家能源局部署迎峰度夏电力保供工作
  • AI算力评估:从硬件指标到行业格局的深度解析
  • 基于 Go 微服务的智能快递柜系统全栈开发实践
  • (毕业必看)实测好用的AI论文写作软件,毕业生收藏备用
  • Hikyuu Quant Framework 2.8.1 版本更新:新增多项特性,优化算法并修复诸多缺陷
  • Agent 工具注册与发现机制:从硬编码到插件式动态加载的架构演进
  • 《HarmonyOS技术精讲-蓝牙》综合实战:构建智能家居控制应用
  • ISO 15765-2 CAN-TP 帧格式解析:SF/FF/CF/FC 4种帧的3个核心差异点
  • 网络安全竞赛研究论文写作指南:从选题到发表的全流程解析