以xfce为桌面Ubuntu 24.04 让 TigerVNC 开机自启
Ubuntu 24.04 让 TigerVNC 开机自启,最稳的是用 systemd 服务,按以下步骤操作即可,全程可复制粘贴。
一、前提准备(已配置可跳过)
1. 确保已设 VNC 密码:vncpasswd(按提示设置,选n不设view-only)
2. 配置 ~/.vnc/xstartup(以 XFCE 为例,更稳更快):
bash
mkdir -p ~/.vnc && nano ~/.vnc/xstartup
粘贴内容并保存(Ctrl+O→回车→Ctrl+X):
bash
!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
export XDG_RUNTIME_DIR=/run/user/$(id -u)
[ -r ~/.Xresources ] && xrdb ~/.Xresources
xsetroot -solid grey
exec startxfce4
3. 赋予执行权限:chmod +x ~/.vnc/xstartup
二、创建 systemd 服务文件
1. 编辑服务文件(替换 <你的用户名> 为实际登录名,如 user):
bash
sudo nano /etc/systemd/system/vncserver@.service
2. 粘贴以下内容(适配 Ubuntu 24.04 + Xorg):
ini
[Unit]
Description=TigerVNC Server for %u (display :%i)
After=syslog.target network.target
Wants=graphical.target
[Service]
Type=forking
User=<你的用户名>
Group=<你的用户名>
WorkingDirectory=/home/<你的用户名>
PIDFile=/home/<你的用户名>/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1280x720 -depth 16 -PreferredEncoding ZRLE -compresslevel 6
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
3. 关键参数说明:
- :1 对应端口 5901;-localhost no 允许远程连(云服务器需开安全组)
- -depth 16 降色深提速;-PreferredEncoding ZRLE 省带宽;-compresslevel 6 平衡性能
三、启用与验证服务
1. 重载并设置开机自启(以显示号 1 为例):
bash
sudo systemctl daemon-reload
sudo systemctl enable --now vncserver@1.service
2. 验证状态:sudo systemctl status vncserver@1.service(显示 active (running) 即成功)
3. 开放防火墙 5901 端口:sudo ufw allow 5901/tcp && sudo ufw reload
四、常见问题与排查
- 启动失败:检查 xstartup 权限(必须 chmod +x)、用户名是否替换正确,看日志:journalctl -u vncserver@1.service -f
- 仍用 Wayland:确保已设 WaylandEnable=false 并重启 gdm3(sudo systemctl restart gdm3)
- 连接慢:保持 -depth 16 和 ZRLE 编码,客户端选对应编码
需要我帮你生成一个一键脚本,自动替换用户名并执行所有步骤吗?你只需告诉我你的登录用户名即可。