温馨提示×

CentOS VNC如何安装和配置

小樊
44
2026-01-09 20:36:50
栏目: 智能运维

CentOS 上安装与配置 VNC 的完整步骤

一 环境准备

  • 确认系统版本:本文以 CentOS 7/8 为主,使用 TigerVNC 作为服务器。若系统未安装图形界面,先安装桌面组并设定默认图形启动:
    • 安装图形界面(二选一):
      • 完整桌面:sudo yum groupinstall “Server with GUI” -y
      • 基础 X:sudo yum groupinstall “X Window System” -y
    • 设定默认运行级别为图形:sudo systemctl set-default graphical.target
    • 立即切换到图形:sudo systemctl start graphical.target
  • 安装字体(可选,解决中文乱码):sudo yum groupinstall “Fonts” -y && sudo yum install dejavu-lgc-sans-fonts -y

二 安装与基础配置

  • 安装 TigerVNC 服务器:sudo yum install tigervnc-server tigervnc -y
  • 为 VNC 用户设置连接密码(在相应用户下执行):vncpasswd(密码至少 6 位,保存在 ~/.vnc/passwd
  • 配置桌面会话(~/.vnc/xstartup):
    • 轻量桌面(推荐):
      #!/bin/sh
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      exec startxfce4
      
    • GNOME 桌面(若已安装 GNOME):
      #!/bin/sh
      [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
      [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
      vncconfig -iconic &
      dbus-launch --exit-with-session gnome-session &
      
    • 赋权:chmod +x ~/.vnc/xstartup
  • 可选:在用户家目录创建 ~/.vnc/config 设定默认分辨率与色深:
    geometry=1920x1080
    depth=24
    alwaysshared=yes
    
    说明:显示编号 :1 对应端口 5901:2 对应 5902,依此类推。

三 使用 systemd 管理 VNC 服务

  • 复制并修改服务模板(以 :1 为例,建议以非 root 运行):
    sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    sudo vim /etc/systemd/system/vncserver@:1.service
    
    关键修改(示例以用户 vncuser 为例):
    [Unit]
    Description=Start TigerVNC server at startup
    After=syslog.target network.target
    
    [Service]
    Type=forking
    User=vncuser
    PIDFile=/home/vncuser/.vnc/%H%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill %i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver %i -geometry 1920x1080 -depth 24
    ExecStop=/usr/bin/vncserver -kill %i
    
    [Install]
    WantedBy=multi-user.target
    
  • 重新加载并启用服务:
    sudo systemctl daemon-reload
    sudo systemctl enable vncserver@:1.service
    sudo systemctl start vncserver@:1.service
    
  • 常用操作:
    • 查看状态:systemctl status vncserver@:1
    • 停止/重启:systemctl stop|restart vncserver@:1
    • 查看日志:tail -f ~/.vnc/*.log
    • 关闭某个显示:vncserver -kill :1

四 防火墙与端口开放

  • 放行对应端口(示例为 :1 → 5901/tcp):
    sudo firewall-cmd --permanent --add-port=5901/tcp
    sudo firewall-cmd --reload
    
  • 云服务器还需在控制台安全组放行 TCP 5901。如需多用户,依次放行 5902、5903…

五 客户端连接与安全建议

  • 直接连接(明文,适合内网):在客户端输入 服务器IP:5901(或 IP:1)。常见客户端:TigerVNC Viewer、RealVNC、Remmina
  • SSH 隧道加密(推荐,跨公网更安全):
    # 本地端口 5901 转发到远端 5901
    ssh -L 5901:localhost:5901 user@your-server-ip
    
    然后在客户端连接 localhost:5901
  • 服务端加固建议:
    • /etc/systemd/system/vncserver@:1.serviceExecStart 中加入 -localhost,仅本机可达,再配合 SSH 隧道使用。
    • 如需仅本机访问,可在 ~/.vnc/config 中设置 localhost=yes
  • 常见问题速查:
    • 黑屏/无桌面:检查 ~/.vnc/xstartup 是否启动正确桌面,查看 ~/.vnc/*.log 报错。
    • 连接被拒绝:确认服务已启动(ss -tulnp | grep vnc)、防火墙/安全组已放行。
    • 中文乱码:安装中文字体与字体包(见上文)。

0