Debian 重启后 TigerVNC 无法启动的排查与修复
一、快速自检与定位
sudo systemctl status vncserver@:1.servicejournalctl -u vncserver@:1.service -b 或 journalctl -xe | grep vncss -ltnp | grep 590 或 netstat -antulp | grep 590vncserver -kill :1(必要时 vncserver -kill ":*" 清理全部)vncpasswd(按提示设置;必要时 vncpasswd -d 删除旧密码后重设)二、常见原因与对应修复
[Service] 中设置 User=你的用户名、Group=你的组名、WorkingDirectory=/home/你的用户名ExecStartPre=/bin/sh -c '/usr/bin/vncpasswd -f > /home/你的用户名/.vnc/passwd'ExecStart=/usr/bin/tigervncserver :1 -geometry 1366x768 -localhost nosudo systemctl daemon-reload && sudo systemctl restart vncserver@:1.servicesudo apt install xfce4(或 mate-desktop-environment)~/.vnc/xstartup 存在且可执行,内容示例(以 XFCE 为例):#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
chmod +x ~/.vnc/xstartupsudo ufw allow 5901/tcpsudo firewall-cmd --add-port=5901/tcp --permanent && sudo firewall-cmd --reloadsudo apt update && sudo apt install --upgrade tigervnc-standalone-server-depth 24)或临时禁用图形加速以验证三、最小可用的 systemd 服务示例
sudo nano /etc/systemd/system/vncserver@:1.service[Unit]
Description=TigerVNC Server %i
After=network.target
[Service]
Type=forking
User=your_username
Group=your_username
WorkingDirectory=/home/your_username
ExecStartPre=-/usr/bin/vncserver -kill :%i >/dev/null 2>&1
ExecStart=/usr/bin/tigervncserver :%i -geometry 1366x768 -depth 24 -localhost no
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reloadsudo systemctl enable --now vncserver@:1.serviceyour_server_ip:5901(显示号 :1 → 端口 5901)四、仍无法启动时的稳妥方案
vncserver -kill ":*";sudo apt remove --purge tigervnc-standalone-server tigervnc-common -yrm -rf ~/.vncsudo apt install tigervnc-standalone-server;vncpasswd;按第三节重新创建服务并启用