首先确认TigerVNC服务是否正在运行。使用以下命令查看服务状态(将:1替换为你的实际显示编号,如:2对应5902端口):
systemctl status vncserver@:1.service
若服务未运行,启动服务并设置开机自启:
sudo systemctl start vncserver@:1.service
sudo systemctl enable vncserver@:1.service
若启动失败,可通过journalctl -u vncserver@:1.service查看具体错误日志。
CentOS默认使用firewalld管理防火墙,需允许VNC端口(默认5900+显示编号,如:1对应5901端口)的TCP流量:
sudo firewall-cmd --permanent --add-port=5901/tcp # 替换为你的实际端口
sudo firewall-cmd --reload
若使用iptables,可添加规则:
sudo iptables -I INPUT 1 -p tcp --dport 5901 -j ACCEPT
sudo service iptables save
验证端口是否开放:
sudo firewall-cmd --list-all | grep 5901 # 或 netstat -tulnp | grep 5901
TigerVNC的服务配置文件通常位于/etc/systemd/system/vncserver@:1.service(若未创建,可复制默认模板):
sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
编辑配置文件,确保User(用户名)、Group(用户组)和WorkingDirectory(工作目录)设置正确:
[Service]
Type=forking
User=vncuser # 替换为你的实际用户名
Group=vncuser # 替换为你的实际用户组
WorkingDirectory=/home/vncuser
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1
ExecStop=/usr/bin/vncserver -kill :%i
修改后重新加载systemd并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart vncserver@:1.service
设置VNC密码:使用vncpasswd命令为当前用户设置密码(密码需至少6位):
vncpasswd
密码保存在~/.vnc/passwd中。
配置xstartup文件:编辑用户主目录下的.vnc/xstartup文件(如/home/vncuser/.vnc/xstartup),确保其包含启动图形界面的命令(以GNOME为例):
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /usr/bin/gnome-session &
保存后赋予执行权限:
chmod +x ~/.vnc/xstartup
若xstartup文件有误,可能导致VNC启动后黑屏。
若VNC端口已被其他进程占用,会导致连接失败。使用以下命令查看端口占用情况:
sudo netstat -tulnp | grep 5901 # 替换为你的实际端口
若端口被占用,终止占用进程(如kill -9 <PID>),或修改VNC配置文件的Display编号(如将:1改为:2,对应5902端口)。
VNC服务的日志文件位于用户主目录的.vnc文件夹下(如/root/.vnc/或/home/vncuser/.vnc/),文件名为<主机名>:<显示编号>.log(如localhost:1.log)。使用以下命令查看日志:
cat /root/.vnc/localhost:1.log # 替换为你的实际路径
日志中会明确提示失败原因(如权限不足、配置文件错误、字体缺失等)。
若启动时提示字体配置错误(如“font catalog is not properly configured”),需安装基础字体库:
sudo yum install pixman pixman-devel libXfont dejavu-sans-fonts dejavu-serif-fonts -y
安装后重启VNC服务。
若以上步骤均无效,可卸载并重新安装TigerVNC服务器:
sudo yum remove -y tigervnc-server tigervnc-server-module
sudo yum install -y tigervnc-server
重新配置并启动服务。