在 Ubuntu 上设置 VNC 开机自启,常见做法取决于你使用的 VNC 服务端(TigerVNC / TightVNC / RealVNC)以及 Ubuntu 版本(是否有桌面、是否用 systemd)。下面以最常用、最稳妥的 TigerVNC + systemd 用户服务为例说明。
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common
vncpasswd
vncserver :1
nano ~/.vnc/xstartup
内容示例(Ubuntu 桌面):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/Xsession
或 GNOME:
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
exec gnome-session
赋予执行权限:
chmod +x ~/.vnc/xstartup
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/vncserver.service
内容示例(用户 ubuntu,显示号 :1):
[Unit]
Description=TigerVNC Server
After=graphical.target
[Service]
Type=simple
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -alwaysshared
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable vncserver.service
systemctl --user start vncserver.service
sudo loginctl enable-linger $USER
这样不登录也能自启 VNC。
如果你是服务器管理员,可创建:
sudo nano /etc/systemd/system/vncserver@.service
示例:
[Unit]
Description=VNC Server %i
After=network.target
[Service]
User=ubuntu
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service
vncviewer your_ip:1
或:
systemctl --user status vncserver.service
enable-lingerxstartup 错误如果你告诉我:
我可以给你完全定制的一套配置。