适用于: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











暂无评论内容