Ubuntu TigerVNC 连不上的排查与修复
一、先快速定位问题
vncserver -list、ss -tulnp | grep 590 或 netstat -lntp | grep 590。若未启动,先 vncpasswd 设置密码再启动:vncserver :1 -localhost no。sudo ufw status 看是否放行对应端口(如 5901/tcp);云服务器还需确认云厂商安全组已放行。二、最常见原因与对应修复
ss -tulnp | grep 5901 显示 127.0.0.1:5901,说明启动时默认只绑定本机。先结束旧进程 vncserver -kill :1,再以 vncserver :1 -localhost no 启动,使监听变为 0.0.0.0:5901,远程才可连。sudo ufw allow 5901/tcp && sudo ufw reload;如使用 firewalld,执行 sudo firewall-cmd --add-port=5901/tcp --permanent && sudo firewall-cmd --reload。#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec xfce4-sessionchmod +x ~/.vnc/xstartup,vncserver -kill :1 后重启。若缺 dbus-launch,安装 dbus-x11。cat ~/.vnc/*.log 查看服务端实际监听与报错。三、一套可直接复用的命令清单(以 :1 为例)
sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-xorg-extension xfce4 xfce4-goodies -yvncpasswd(设置 VNC 密码)mkdir -p ~/.vnc && nano ~/.vnc/xstartupchmod +x ~/.vnc/xstartupvncserver -kill :1(如有旧进程)vncserver :1 -localhost no -geometry 1920x1080 -depth 24ss -tulnp | grep 5901(应看到 0.0.0.0:5901)sudo ufw allow 5901/tcp && sudo ufw reloadvncpasswd 设置的密码四、仍然失败时的进阶排查
cat ~/.vnc/*.log,根据报错修复(如缺少会话管理器、权限问题、桌面组件缺失等)。ssh -L 5901:127.0.0.1:5901 用户名@服务器IP,客户端连接 127.0.0.1:1。