无显示器云服务器配置 RustDesk 远程桌面完整教程

适用于:Ubuntu 24.04 LTS(amd64 / aarch64) 场景:云服务器无显示器,纯命令行,开机自动启动 RustDesk 可被连接


前言

云服务器没有显示器,系统启动时不会创建任何图形显示环境,导致 RustDesk 无法直接运行。本教程使用 Xvfb 虚拟显示器 + GNOME 桌面 + RustDesk 的组合,实现开机自启、无需人工干预、可直接远程连接的桌面环境。全程纯命令行,不依赖 xRDP。

踩坑提醒:

  • RustDesk 连接上去后默认无法在远程界面修改客户端配置,必须提前用命令行配置好,否则非常麻烦
  • 连接后进入设置页面会被 “Unlock security settings” 拦住,所有选项灰色不可点,需提前命令行解锁
  • RustDesk 的服务器配置在 RustDesk2.toml,不是 RustDesk.toml
  • RustDesk 启动时会覆盖配置文件,必须写完配置后锁定文件再启动

第一步:安装桌面环境和 Xvfb

不需要安装 xRDP,只需要桌面环境和虚拟显示器:

bash
sudo apt update && sudo apt install ubuntu-desktop xvfb -y

第二步:安装 RustDesk

bash
cd /home/ubuntu

# aarch64(ARM)
wget https://github.com/rustdesk/rustdesk/releases/download/1.4.7/rustdesk-1.4.7-aarch64.deb
sudo dpkg -i rustdesk-1.4.7-aarch64.deb

# amd64(x86_64)
# wget https://github.com/rustdesk/rustdesk/releases/download/1.4.7/rustdesk-1.4.7-x86_64.deb
# sudo dpkg -i rustdesk-1.4.7-x86_64.deb

# 修复依赖
sudo apt install -f -y

安装完成后禁用 RustDesk 自带的系统服务(后面用自定义服务替代):

bash
sudo systemctl stop rustdesk
sudo systemctl disable rustdesk

第三步:配置自建服务器

必须在启动 RustDesk 之前完成,连接后无法修改。

bash
mkdir -p /home/ubuntu/.config/rustdesk

写入配置(替换为你自己的服务器地址和 Key):

bash
cat > /home/ubuntu/.config/rustdesk/RustDesk2.toml << EOF
rendezvous_server = '你的服务器地址:21116'
nat_type = 1
serial = 0
unlock_pin = ''
trusted_devices = ''
[options]
relay-server = '你的服务器地址:21117'
key = '你的服务器Key'
custom-rendezvous-server = '你的服务器地址:21116'
allow-remote-config-modification = 'Y'
EOF

锁定配置文件,防止 RustDesk 启动时覆盖:

bash
chmod 444 /home/ubuntu/.config/rustdesk/RustDesk2.toml

allow-remote-config-modification = ‘Y’ 这行非常重要,没有它连接后设置页面所有选项全部灰色无法修改。


第四步:设置固定密码

RustDesk 默认每次重启随机生成一次性密码,建议设置固定密码:

bash
cat > /home/ubuntu/.config/rustdesk/RustDesk.toml << EOF
password = '你的固定密码'
EOF

chmod 444 /home/ubuntu/.config/rustdesk/RustDesk.toml

第五步:配置开机自启服务

5.1 Xvfb 虚拟显示器服务

bash
sudo tee /etc/systemd/system/xvfb.service << EOF
[Unit]
Description=Virtual Display
After=network.target

[Service]
ExecStart=/usr/bin/Xvfb :99 -screen 0 1920x1080x24
Restart=always

[Install]
WantedBy=multi-user.target
EOF

5.2 RustDesk + GNOME 桌面服务

bash
sudo tee /etc/systemd/system/rustdesk-desktop.service << EOF
[Unit]
Description=RustDesk Desktop
After=xvfb.service

[Service]
User=ubuntu
Environment=DISPLAY=:99
ExecStartPre=/bin/sleep 3
ExecStart=/bin/bash -c 'gnome-session & /usr/bin/rustdesk'
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

5.3 启用并启动

bash
sudo systemctl daemon-reload
sudo systemctl enable xvfb rustdesk-desktop
sudo systemctl start xvfb rustdesk-desktop

第六步:获取 RustDesk ID

bash
rustdesk --get-id

记下 ID,连接时使用。


第七步:验证开机自启

bash
sudo reboot

重启后直接用 RustDesk 客户端输入 ID 和固定密码连接,无需任何额外操作。


如果之前安装了 xRDP 可以卸载

bash
sudo systemctl stop xrdp
sudo systemctl disable xrdp
sudo apt remove xrdp -y

常见问题

连接后黑屏只看到 RustDesk 窗口

GNOME 没有启动,检查服务状态:

bash
sudo systemctl status rustdesk-desktop
sudo journalctl -u rustdesk-desktop -n 50 --no-pager

连接后设置页面全部灰色无法修改

说明 allow-remote-config-modification 没有配置,需要解锁配置文件重新写入:

bash
sudo systemctl stop rustdesk-desktop
chmod 644 /home/ubuntu/.config/rustdesk/RustDesk2.toml
# 重新写入配置(参考第三步),确保包含 allow-remote-config-modification = 'Y'
chmod 444 /home/ubuntu/.config/rustdesk/RustDesk2.toml
sudo systemctl start rustdesk-desktop

配置文件被覆盖导致连不上自建服务器

bash
sudo systemctl stop rustdesk-desktop
chmod 644 /home/ubuntu/.config/rustdesk/RustDesk2.toml
# 重新写入配置(参考第三步)
chmod 444 /home/ubuntu/.config/rustdesk/RustDesk2.toml
sudo systemctl start rustdesk-desktop

查看服务日志

bash
sudo journalctl -u rustdesk-desktop -n 50 --no-pager
sudo journalctl -u xvfb -n 20 --no-pager

总结

组件 作用
Xvfb 虚拟显示器,替代物理显示器,无需 xRDP
GNOME 桌面环境
RustDesk 远程桌面,接管 Xvfb 画面
systemd 管理开机自启

整个方案不依赖物理显示器,不依赖 xRDP,开机全自动启动,RustDesk 直接可用。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容