【Ubuntu远程桌面】

Ubuntu-远程桌面

  • ubuntu环境rustdesk-1.4.0-aarch64.deb安装rustdesk
    • [报错:可能会在远程连接时候显示'No displays'](#报错:可能会在远程连接时候显示‘No displays’)
      • 解决方法
        • [1. 安装 CUDA(如果需要)](#1. 安装 CUDA(如果需要))
        • [2. 解决 XDG 桌面门户问题](#2. 解决 XDG 桌面门户问题)
        • [3. 检查 RustDesk 客户端日志](#3. 检查 RustDesk 客户端日志)
      • 总结
  • [kill --tray and --server both](#kill --tray and --server both)
  • [below two lines do not work, have to use above one line](#below two lines do not work, have to use above one line)
    • 出现如下错误:
      • 解决方法
        • [1. 修改 `sudoers` 文件](#1. 修改 sudoers 文件)
        • [2. 修改 RustDesk 服务配置](#2. 修改 RustDesk 服务配置)
        • [3. 检查 RustDesk 客户端启动](#3. 检查 RustDesk 客户端启动)
      • 总结

ubuntu环境rustdesk-1.4.0-aarch64.deb安装rustdesk

报错:可能会在远程连接时候显示'No displays'

log 复制代码
5月 29 15:04:18 ubuntu-zgq systemd[1]: Stopped RustDesk.
5月 29 15:04:33 ubuntu-zgq systemd[1]: Started RustDesk.
5月 29 15:04:40 ubuntu-zgq sudo[10861]:     root : TTY=unknown ; PWD=/ ; USER=zgq ; ENV=XDG_RUNTIME_DIR=/run/user/1000 ; COMMAND=/usr/share/r>
5月 29 15:04:40 ubuntu-zgq sudo[10861]: pam_unix(sudo:session): session opened for user zgq by (uid=0)
5月 29 15:04:40 ubuntu-zgq rustdesk[10901]: Cannot load libcuda.so.1
5月 29 15:04:40 ubuntu-zgq rustdesk[10901]: Cannot load libcuda.so.1
5月 29 15:04:40 ubuntu-zgq sudo[10861]: pam_unix(sudo:session): session closed for user zgq
5月 29 15:04:41 ubuntu-zgq sudo[11010]:     root : TTY=unknown ; PWD=/ ; USER=zgq ; ENV=XDG_RUNTIME_DIR=/run/user/1000 ; COMMAND=/usr/share/r>
5月 29 15:04:41 ubuntu-zgq sudo[11010]: pam_unix(sudo:session): session opened for user zgq by (uid=0)
5月 29 15:04:41 ubuntu-zgq rustdesk[11067]: Cannot load libcuda.so.1
5月 29 15:04:41 ubuntu-zgq rustdesk[11067]: Cannot load libcuda.so.1
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: 未>
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: 未>
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: Try setting transparent
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: flutter: launch args: [--cm]
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: flutter: --cm started

comment: 此处为注释,阅读时请忽略

从日志信息来看,RustDesk 在启动过程中遇到了几个问题:

  1. 无法加载 libcuda.so.1

    • 这表明 RustDesk 试图加载 CUDA 库,但找不到该库。这可能是因为系统中没有安装 CUDA,或者 CUDA 库的路径没有正确配置。
  2. 无法读取 XDG 桌面门户设置

    • 这表明 RustDesk 无法访问 XDG 桌面门户,这可能是由于权限问题或桌面环境未正确启动。

解决方法

1. 安装 CUDA(如果需要)

如果你的系统需要使用 CUDA 功能,可以安装 CUDA 库。否则,可以忽略这个错误。

  1. 安装 CUDA

    • 安装 CUDA 的步骤比较复杂,具体步骤可以参考 NVIDIA 官方文档

    • 简单的安装命令如下:

      bash 复制代码
      sudo apt update
      sudo apt install nvidia-cuda-toolkit
  2. 设置环境变量

    • 确保 CUDA 库路径已添加到环境变量中。编辑 ~/.bashrc 文件,添加以下内容:

      bash 复制代码
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    • 然后重新加载配置文件:

      bash 复制代码
      source ~/.bashrc
2. 解决 XDG 桌面门户问题

XDG 桌面门户问题可能是由于权限不足或桌面环境未正确启动。可以通过以下步骤解决:

  1. 检查 XDG_RUNTIME_DIR

    • 确保 XDG_RUNTIME_DIR 环境变量已正确设置。可以通过以下命令检查:

      bash 复制代码
      echo $XDG_RUNTIME_DIR
    • 如果输出为空或不正确,可以手动设置:

      bash 复制代码
      export XDG_RUNTIME_DIR=/run/user/$(id -u)
  2. 检查显示管理器状态

    • 确保显示管理器(如 GDM 或 LightDM)正在运行。可以通过以下命令检查:

      bash 复制代码
      sudo systemctl status gdm3
    • 如果显示管理器未启动,可以通过以下命令启动:

      bash 复制代码
      sudo systemctl start gdm3
  3. 检查 RustDesk 服务配置

    • 确保 RustDesk 服务配置正确。可以通过以下命令检查 RustDesk 服务配置文件:

      bash 复制代码
      cat /etc/systemd/system/rustdesk.service
    • 确保服务配置文件中包含正确的环境变量和用户权限设置。例如:

      ini 复制代码
      [Service]
      ExecStart=/usr/bin/rustdesk --service
      User=gdm
      Environment=XDG_RUNTIME_DIR=/run/user/121
  4. 重新启动 RustDesk 服务

    • 重新启动 RustDesk 服务以应用新的配置:

      bash 复制代码
      sudo systemctl daemon-reload
      sudo systemctl restart rustdesk
3. 检查 RustDesk 客户端日志

RustDesk 客户端日志可能包含更多错误信息。可以通过以下步骤检查:

  1. 查看客户端日志

    • 查看 RustDesk 客户端日志文件:

      bash 复制代码
      journalctl -u rustdesk
  2. 手动启动 RustDesk 客户端

    • gdm 用户身份手动启动 RustDesk 客户端,以便查看实时日志:

      bash 复制代码
      sudo -u gdm -E XDG_RUNTIME_DIR=/run/user/121 /usr/share/rustdesk/rustdesk --tray

总结

通过以上步骤,你应该能够解决 RustDesk 提示"no displays"和"Cannot load libcuda.so.1"的问题。如果问题仍然存在,建议查看 RustDesk 的官方文档或社区论坛,获取更多帮助。

zgq@ubuntu-zgq:~$ cat /lib/systemd/system/rustdesk.service

Unit

Description=RustDesk

Requires=network.target

After=systemd-user-sessions.service

Service

Type=simple

ExecStart=/usr/bin/rustdesk --service

kill --tray and --server both

ExecStop=/usr/bin/pkill -f "rustdesk --"

below two lines do not work, have to use above one line

#ExecStop=/usr/bin/pkill -f "rustdesk --tray"

#ExecStop=/usr/bin/pkill -f "rustdesk --server"

PIDFile=/run/rustdesk.pid

KillMode=mixed

TimeoutStopSec=30

User=root

LimitNOFILE=100000

Install

WantedBy=multi-user.target

出现如下错误:

● rustdesk.service - RustDesk

Loaded: loaded (/lib/systemd/system/rustdesk.service; enabled; vendor preset: enabled)

Active: active (running) since Thu 2025-05-29 21:31:54 CST; 8s ago

Main PID: 35316 (rustdesk)

Tasks: 16 (limit: 18892)

Memory: 20.5M

CPU: 2.254s

CGroup: /system.slice/rustdesk.service

└─35316 /usr/bin/rustdesk --service

5月 29 21:31:54 ubuntu-zgq systemd[1]: Started RustDesk.

5月 29 21:32:02 ubuntu-zgq sudo[36404]: gdm : user NOT in sudoers ; PWD=/ ; USER=gdm ; ENV=XDG_RUNTIME_DIR=/run/user/121 ; COMMAND=/usr/>

5月 29 21:32:02 ubuntu-zgq rustdesk[36404]: gdm 不在 sudoers 文件中。此事将被报告。

5月 29 21:32:02 ubuntu-zgq sudo[36426]: gdm : user NOT in sudoers ; PWD=/ ; USER=gdm ; ENV=XDG_RUNTIME_DIR=/run/user/121 ; COMMAND=/usr/>

5月 29 21:32:02 ubuntu-zgq rustdesk[36426]: gdm 不在 sudoers 文件中。此事将被报告。

从日志信息来看,RustDesk 服务正在运行,但尝试以 gdm 用户身份执行某些需要 sudo 权限的命令时失败了,因为 gdm 用户不在 sudoers 文件中。这可能是由于 RustDesk 客户端尝试以 gdm 用户身份启动时需要某些特权操作。

解决方法

1. 修改 sudoers 文件

为了让 gdm 用户能够执行必要的命令,可以将 gdm 用户添加到 sudoers 文件中,并允许其执行特定的命令。这需要谨慎操作,以避免安全问题。

  1. 编辑 sudoers 文件

    使用 visudo 命令编辑 sudoers 文件:

    bash 复制代码
    sudo visudo
  2. 添加 gdm 用户

    在文件中添加以下行,允许 gdm 用户执行 rustdesk 相关命令:

    bash 复制代码
    gdm ALL=(ALL) NOPASSWD: /usr/bin/rustdesk

    这将允许 gdm 用户在不需要密码的情况下执行 rustdesk 命令。

  3. 保存并退出

    保存文件并退出编辑器。

2. 修改 RustDesk 服务配置

确保 RustDesk 服务配置正确,避免不必要的 sudo 调用。

  1. 编辑服务配置文件

    打开 /lib/systemd/system/rustdesk.service 文件进行编辑:

    bash 复制代码
    sudo nano /lib/systemd/system/rustdesk.service
  2. 修改配置文件

    [Service] 部分,确保 User 设置为 gdm,并添加 Environment 变量:

    ini 复制代码
    [Service]
    Type=simple
    ExecStart=/usr/bin/rustdesk --service
    ExecStop=/usr/bin/pkill -f "rustdesk --"
    PIDFile=/run/rustdesk.pid
    KillMode=mixed
    TimeoutStopSec=30
    User=gdm
    Environment=XDG_RUNTIME_DIR=/run/user/121
    LimitNOFILE=100000
  3. 重新加载 systemd 配置

    修改配置文件后,重新加载 systemd 配置并重启 RustDesk 服务:

    bash 复制代码
    sudo systemctl daemon-reload
    sudo systemctl restart rustdesk
3. 检查 RustDesk 客户端启动

确保 RustDesk 客户端能够正确启动。可以通过以下步骤手动启动 RustDesk 客户端,并检查日志:

  1. 手动启动 RustDesk 客户端

    gdm 用户身份手动启动 RustDesk 客户端:

    bash 复制代码
    sudo -u gdm -E XDG_RUNTIME_DIR=/run/user/121 /usr/share/rustdesk/rustdesk --tray
  2. 检查客户端日志

    查看 RustDesk 客户端日志文件以获取更多错误信息:

    bash 复制代码
    journalctl -u rustdesk

总结

通过修改 sudoers 文件,允许 gdm 用户执行必要的命令,并确保 RustDesk 服务配置正确,可以解决 RustDesk 提示"gdm 不在 sudoers 文件中"的问题。如果问题仍然存在,建议查看 RustDesk 的官方文档或社区论坛,获取更多帮助。

相关推荐
chilavert3182 分钟前
深度剖析Node.js的原理及事件方式
linux·node.js·编辑器·vim
☆凡尘清心☆31 分钟前
CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)
linux·nginx·centos·lnmp
2401_874275171 小时前
linux、docker、git相关操作
linux·git·docker
唐青枫1 小时前
Linux 下如何查看进程的资源限制信息?
linux
孙克旭_2 小时前
day024-网络基础-TCP与UDP、DNS
linux·运维·网络·网络协议·tcp/ip·udp
qq_243050792 小时前
thc-ssl-dos:SSL 压力测试的轻量级工具!全参数详细教程!Kali Linux教程!
linux·网络·安全·网络安全·压力测试·ssl·kali linux
regedit802 小时前
Centos7升级openssl
linux·运维·服务器
渡我白衣3 小时前
Linux操作系统之进程(四):命令行参数与环境变量
linux
藥瓿亭3 小时前
2024 CKA模拟系统制作 | Step-By-Step | 18、题目搭建-备份还原Etcd
linux·运维·服务器·ubuntu·kubernetes·etcd·cka
洁✘3 小时前
lvs-keepalived高可用群集
linux·服务器·lvs