【Ubuntu远程桌面】

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

注意事项:

  • 1.xrdp方式连接:
    客户端连接建议使用windows管理员身份连接
  • 2.rustdesk方式连接
    buntu使用deb安装,rustdesk服务(/lib/systemd/system/rustdesk.service)配置容易出错,可以停止rustdesk服务,在命令行启动rustdesk(先使用连接上桌面,再在终端执行)
zgq@ubuntu-zgq:~$sudo systemctl status rustdesk
zgq@ubuntu-zgq:~$sudo systemctl stop rustdesk
# 在命令行启动rustdesk(先使用连接上桌面,再在终端执行)
zgq@ubuntu-zgq:~$sudo rustdesk
zgq@ubuntu-zgq:~$ rustdesk
Cannot load libcuda.so.1
Try setting transparent
Cannot load libcuda.so.1
flutter: launch args: []
flutter: initializing FFI main
flutter: _appType:main,info1-id:51016757ba3749a9aa73a51049409e34,info2-name:Ubuntu,dir:/home/zgq/文档
flutter: _globalFFI init
flutter: registerEventHandler callback_query_onlines address book peer
flutter: registerEventHandler load_address_book_peers address book peer
flutter: registerEventHandler callback_query_onlines group peer
flutter: registerEventHandler load_group_peers group peer
flutter: registerEventHandler callback_query_onlines recent peer
flutter: registerEventHandler load_recent_peers recent peer
flutter: registerEventHandler callback_query_onlines fav peer
flutter: registerEventHandler load_fav_peers fav peer
flutter: registerEventHandler callback_query_onlines discovered peer
flutter: registerEventHandler load_lan_peers discovered peer
flutter: _globalFFI init end
flutter: registerEventHandler native_ui native_ui
flutter: registerEventHandler check_software_update_finish check_software_update_finish
flutter: restore lpos: 800.0/600.0, offset:159.0/181.0, isMaximized: false, isFullscreen: false
flutter: handled by uni links: false
flutter: [MultiWindowHandler] active window changed: {0}
umount: /tmp/RustDesk/cliprdr-server: not mounted.

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

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 官方文档
    • 简单的安装命令如下:
      sudo apt update
      sudo apt install nvidia-cuda-toolkit
      
  2. 设置环境变量

    • 确保 CUDA 库路径已添加到环境变量中。编辑 ~/.bashrc 文件,添加以下内容:
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
      
    • 然后重新加载配置文件:
      source ~/.bashrc
      
2. 解决 XDG 桌面门户问题

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

  1. 检查 XDG_RUNTIME_DIR

    • 确保 XDG_RUNTIME_DIR 环境变量已正确设置。可以通过以下命令检查:
      echo $XDG_RUNTIME_DIR
      
    • 如果输出为空或不正确,可以手动设置:
      export XDG_RUNTIME_DIR=/run/user/$(id -u)
      
  2. 检查显示管理器状态

    • 确保显示管理器(如 GDM 或 LightDM)正在运行。可以通过以下命令检查:
      sudo systemctl status gdm3
      
    • 如果显示管理器未启动,可以通过以下命令启动:
      sudo systemctl start gdm3
      
  3. 检查 RustDesk 服务配置

    • 确保 RustDesk 服务配置正确。可以通过以下命令检查 RustDesk 服务配置文件:
      cat /etc/systemd/system/rustdesk.service
      
    • 确保服务配置文件中包含正确的环境变量和用户权限设置。例如:
      [Service]
      ExecStart=/usr/bin/rustdesk --service
      User=gdm
      Environment=XDG_RUNTIME_DIR=/run/user/121
      
  4. 重新启动 RustDesk 服务

    • 重新启动 RustDesk 服务以应用新的配置:
      sudo systemctl daemon-reload
      sudo systemctl restart rustdesk
      
3. 检查 RustDesk 客户端日志

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

  1. 查看客户端日志

    • 查看 RustDesk 客户端日志文件:
      journalctl -u rustdesk
      
  2. 手动启动 RustDesk 客户端

    • gdm 用户身份手动启动 RustDesk 客户端,以便查看实时日志:
      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 文件:

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

    gdm ALL=(ALL) NOPASSWD: /usr/bin/rustdesk
    

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

  3. 保存并退出
    保存文件并退出编辑器。

2. 修改 RustDesk 服务配置

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

  1. 编辑服务配置文件
    打开 /lib/systemd/system/rustdesk.service 文件进行编辑:

    sudo nano /lib/systemd/system/rustdesk.service
    
  2. 修改配置文件
    [Service] 部分,确保 User 设置为 gdm,并添加 Environment 变量:

    [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 服务:

    sudo systemctl daemon-reload
    sudo systemctl restart rustdesk
    
3. 检查 RustDesk 客户端启动

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

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

    sudo -u gdm -E XDG_RUNTIME_DIR=/run/user/121 /usr/share/rustdesk/rustdesk --tray
    
  2. 检查客户端日志
    查看 RustDesk 客户端日志文件以获取更多错误信息:

    journalctl -u rustdesk
    

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值