Ubuntu/TigerVNC故障排查技巧
首先确认VNC服务器是否已启动。使用命令vncserver -list查看当前运行的VNC会话(如显示:1表示端口5901);若未运行,用vncserver :1启动(:1对应端口号5901+显示号)。也可通过ps aux | grep Xvnc或systemctl status vncserver@:1.service(若使用systemd服务)检查进程状态。
TigerVNC默认使用5900+显示号的端口(如:1对应5901)。若使用ufw防火墙,需运行sudo ufw allow 5901/tcp开放端口;若用iptables,添加-A INPUT -p tcp --dport 5901 -j ACCEPT规则。确保客户端与服务器在同一网络,或已配置路由器端口转发(外部端口→服务器内网端口)。
首次使用需用vncpasswd命令设置密码(至少6位)。连接时需输入该密码,若忘记可通过vncpasswd重新设置(会覆盖旧密码)。注意:密码需包含字母+数字,避免特殊字符。
/etc/systemd/system/vncserver@:1.service,需确保User(启动用户)、WorkingDirectory(用户家目录)、ExecStart(启动命令,如/usr/bin/vncserver :1)等参数正确。修改后运行sudo systemctl daemon-reload生效。~/.vnc/xstartup文件定义桌面环境,需根据使用的桌面环境(如GNOME、XFCE)调整。例如,XFCE需添加startxfce4 &,GNOME需添加gnome-session &。修改后需赋予执行权限:chmod +x ~/.vnc/xstartup。用ping <服务器IP>测试客户端与服务器的网络连通性;用telnet <服务器IP> 5901(替换为实际端口)检查端口是否可达。若ping不通,检查网络线路或路由器设置;若telnet失败,确认防火墙/端口转发是否正确。
VNC日志通常位于~/.vnc/目录下(如~/.vnc/localhost:1.log),包含启动错误、连接拒绝等详细信息。用tail -f ~/.vnc/localhost:1.log实时查看日志,根据错误提示针对性解决(如“Cannot establish connection”可能为端口未开放,“No display”可能为xstartup配置错误)。
用top、htop查看CPU使用率,free -h查看内存占用,df -h查看磁盘空间(需预留至少10%空闲空间)。若资源不足,关闭不必要的程序(如浏览器、大型软件);若磁盘空间不足,删除临时文件(/tmp)或旧日志。确保系统已更新:sudo apt update && sudo apt upgrade,修复已知bug。
若连接后黑屏或无法登录,需修改~/.vnc/xstartup文件,确保启动正确的桌面环境。例如:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
startxfce4 & # 若使用XFCE桌面
修改后运行vncserver -kill :1终止当前会话,再用vncserver :1重启。
TigerVNC不建议以root用户启动,易引发权限问题。创建普通用户(如vncuser)并加入users组:sudo useradd -m vncuser -G users,设置密码sudo passwd vncuser,然后用该用户启动VNC:su - vncuser -c "vncserver :1"。
若以上步骤均无效,尝试卸载并重新安装TigerVNC:
sudo apt remove --purge tigervnc-standalone-server tigervnc-common
sudo apt autoremove
sudo apt install tigervnc-standalone-server tigervnc-common
重新配置服务文件和xstartup,再启动服务。