Linux 下 TigerVNC 连接失败的排查与修复
一 快速自检清单
ps -ef | grep vnc、ss -tulnp | grep 590 或 vncserver -list。若未启动,先执行 vncserver :n 启动会话。systemctl daemon-reload && systemctl restart vncserver@:n.service 使配置生效。二 常见症状与对应修复
ss -tulnp | grep 590 确认监听地址;若是 127.0.0.1,结束旧会话后用 vncserver :n -localhost no 重启;随后放行防火墙(如 ufw allow 5901/tcp 或 firewall-cmd --permanent --add-port=5901/tcp && firewall-cmd --reload)。chmod +x ~/.vnc/xstartup;按需配置桌面(如 GNOME/xfce 的启动命令),然后 vncserver -kill :n 再启动。loginctl list-sessions 查看会话 ID,使用 sudo loginctl unlock-session <ID> 解锁,或结束对应 VNC 会话后重启。ss -tulnp | grep 590 找到占用进程并结束,或改用未占用的显示号(如从 :1 改为 :2)。vncpasswd 重设密码。三 发行版要点与命令示例
| 发行版 | 安装命令 | 启动与会话管理 | 防火墙放行 |
|---|---|---|---|
| Debian/Ubuntu | sudo apt-get update && sudo apt-get install tigervnc-standalone-server tigervnc-common |
vncserver :1,vncserver -list,vncserver -kill :1 |
sudo ufw allow 5901/tcp && sudo ufw reload |
| CentOS/RHEL | sudo yum install tigervnc-server tigervnc-server-module |
vncserver :1,systemctl enable --now vncserver@:1.service |
sudo firewall-cmd --permanent --add-port=5901/tcp && sudo firewall-cmd --reload |
| systemd 服务文件要点 | — | 编辑 /etc/systemd/system/vncserver@:1.service,设置 User=实际用户;修改后 systemctl daemon-reload && systemctl restart vncserver@:1.service |
— |
四 日志定位与进一步处理
journalctl -xe 检查服务启动失败原因(常见于 systemd 单元配置错误)。