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

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:rootxhost 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重连连接成功重启后保持从前面的日志看成功的关键是todeskd能找到DISPLAY:0和/home/mc/.Xauthority当前 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] EnvironmentDISPLAY:0 EnvironmentXAUTHORITY/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/.Xauthority2. 每次登录 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 和认证文件准备完成 i0 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] TypeApplication NameToDesk X11 Access CommentAllow the ToDesk system service to access the local X11 session Exec/home/mc/.local/bin/todesk-x11-prepare.sh Terminalfalse X-GNOME-Autostart-enabledtrue NoDisplaytrue EOF以后每次mc登录 Ubuntu 桌面都会自动执行xhost SI:localuser:root不要改成xhost 后者会过度放宽 X11 访问权限。3. 确保一直使用 X11不要切回 Wayland检查/etc/gdm3/custom.confsudo nano /etc/gdm3/custom.conf确保存在[daemon] WaylandEnablefalse然后sudo systemctl restart gdm3注意这会结束当前桌面会话。现在已经正常时不必立即重启 GDM可以等下次正常重启机器。登录后验证echo $XDG_SESSION_TYPE应输出x114. 无人值守重启后的问题上面的自动授权只有在mc登录 GNOME 后才会执行。如果电脑重启后停留在登录界面可能还不能稳定远控。需要无人值守重启后自动恢复可选择开启自动登录sudo nano /etc/gdm3/custom.conf配置为【此处 mc 为用户名替换为自己的用户名】[daemon] WaylandEnablefalse AutomaticLoginEnabletrue AutomaticLoginmc这样重启后流程会自动完成启动 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期望看到sessionx11 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 服务运行下次连接通常不需要再手动执行授权。使用当前最新的 ToDeskUbuntu 24.04.3 LTS