在 Ubuntu 上让 VNC 开机自启,常见做法取决于你用的是 桌面版还是服务器版、以及 VNC 服务端类型(TigerVNC / x11vnc / GNOME 自带等)。下面按 最常用场景 给你一套清晰方案。
适用于:
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common
vncpasswd
(密码保存在 ~/.vnc/passwd)
假设你的用户名是 ubuntu,VNC 端口 :1(5901)
sudo nano /etc/systemd/system/vncserver@.service
内容如下(⚠️ 注意替换用户名):
[Unit]
Description=VNC Server at %i
After=network.target
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
ExecStartPre=-/usr/bin/vncserver -kill :%i
ExecStart=/usr/bin/vncserver :%i
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
保存退出。
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1
sudo systemctl start vncserver@1
查看状态:
systemctl status vncserver@1
✅ 重启后 VNC 将自动启动
适合 桌面版 Ubuntu
systemctl --user status vino-server
✅ 登录后自动启动(不是纯 system 级)
⚠️ 缺点:
sudo apt install x11vnc
x11vnc -storepasswd
sudo nano /etc/systemd/system/x11vnc.service
[Unit]
Description=x11vnc
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/ubuntu/.x11vnc/passwd -rfbport 5900
Restart=always
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl enable x11vnc
sudo systemctl start x11vnc
ss -lntp | grep 590
或重启测试:
sudo reboot
~/.vnc/xstartup示例(GNOME):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec gnome-session &
| VNC 显示号 | 端口 |
|---|---|
| :1 | 5901 |
| :2 | 5902 |
你可以直接告诉我:
我可以给你 完全定制的一套配置 ✅