温馨提示×

如何在CentOS上使用Tigervnc连接远程主机

小樊
44
2025-12-17 12:20:52
栏目: 云计算

在 CentOS 上使用 TigerVNC 连接远程主机

一 准备与前置条件

  • 目标主机需安装图形桌面(无图形需先安装),例如在 CentOS 7/8 上执行:sudo yum groupinstall "Server with GUI" -y,并将默认目标设为图形:sudo systemctl set-default graphical.target;如需立即切换:sudo systemctl start graphical.target
  • 开放防火墙端口:VNC 显示号 :1 对应端口 5901,执行:sudo firewall-cmd --permanent --add-port=5901/tcp && sudo firewall-cmd --reload。如使用云服务器,还需在云平台安全组放行 TCP 5901
  • 客户端准备:在本地或另一台 CentOS 上安装 TigerVNC 客户端:sudo yum install tigervnc -y

二 在目标主机安装并配置 TigerVNC 服务

  • 安装服务端:sudo yum install tigervnc-server tigervnc -y
  • 为目标用户设置 VNC 密码(以用户 alice 为例):su - alice 后执行 vncpasswd,按提示设置并确认密码。
  • 配置 systemd 服务单元:
    1. 复制模板:sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    2. 编辑该文件,将 User= 设为 alice,并在 ExecStart= 中指定分辨率与色深,例如:
      ExecStart=/sbin/runuser -l alice -c "/usr/bin/vncserver %i -geometry 1280x800 -depth 24"
    3. 重新加载并启动:
      sudo systemctl daemon-reload
      sudo systemctl enable --now vncserver@:1.service
    4. 验证监听:ss -lntp | grep 5901,应看到 :5901 处于监听。

三 从 CentOS 客户端连接

  • 使用命令行客户端连接:vncviewer <服务器IP>:1,输入上一步设置的 VNC 密码即可。
  • 如需共享会话(允许多个客户端同时连同一显示号),可使用:vncviewer --shared <服务器IP>:1
  • 连接失败排查要点:确认目标主机已安装图形桌面、VNC 服务已启动并监听 5901、本机与云安全组已放行 5901/tcp

四 常见问题与进阶

  • 多用户与多桌面:如需为多个用户或多个桌面会话提供服务,可创建多个服务单元(如 :2:3),每个显示号对应 59025903 端口,并分别设置防火墙放行与 systemd 启用。
  • 桌面环境未启动或黑屏:检查用户家目录的 ~/.vnc/xstartup,确保启动对应桌面(如 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 服务。
  • 云环境连通性:除系统防火墙外,务必在云厂商控制台安全组放行 TCP 5901(或对应显示号端口)。

0