温馨提示×

如何在CentOS上远程控制TigerVNC

小樊
48
2025-11-15 21:27:49
栏目: 智能运维

在 CentOS 上远程控制 TigerVNC 的完整步骤

一 环境准备与安装

  • 更新系统并安装 TigerVNC 服务器(桌面环境建议已安装,如 GNOME/XFCE;纯命令行服务器需先安装桌面):
    • 安装命令:sudo yum install -y tigervnc-server
    • 如未启用 EPEL,先安装:sudo yum install -y epel-release
  • 说明:TigerVNC 更适合已安装桌面环境的 CentOS 主机,用于图形化远程控制。

二 配置 VNC 密码与 systemd 服务

  • 切换到目标用户(不建议直接用 root 运行桌面会话)并设置 VNC 专用密码:
    • su - <用户名>
    • vncpasswd(输入并确认密码;仅查看密码可设为 no)
  • 创建 systemd 服务单元(以显示号 :1 为例,对应端口 5901):
    • 复制模板:sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    • 编辑服务文件(示例关键项):
      • [Service] 段:
        • User=<用户名>
        • Group=<用户组>
        • WorkingDirectory=/home/<用户名>
        • ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
        • ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i
        • ExecStop=/usr/bin/vncserver -kill :%i
  • 重新加载并启用服务:
    • sudo systemctl daemon-reload
    • sudo systemctl enable --now vncserver@:1.service
  • 提示:如需多个并发桌面,分别创建 vncserver@:2.servicevncserver@:3.service 等,并分配不同端口。

三 防火墙与端口开放

  • 开放对应端口(以 :1 → 5901/tcp 为例):
    • 按端口开放:sudo firewall-cmd --permanent --add-port=5901/tcp && sudo firewall-cmd --reload
    • 或按服务开放:sudo firewall-cmd --permanent --add-service=vnc-server && sudo firewall-cmd --reload
  • 端口规则说明:显示号 :n 对应端口 5900 + n(例如 :1 → 5901:2 → 5902)。

四 客户端连接与常用操作

  • 连接方法(客户端如 TigerVNC Viewer、RealVNC Viewer):
    • 地址格式:服务器IP:显示号(例如 192.168.1.100:1192.168.1.100:5901
  • 常用运维命令:
    • 查看会话:vncserver -list
    • 结束会话:vncserver -kill :1
    • 动态改分辨率/色深(需先停会话):vncserver -kill :1vncserver -geometry 1280x800 -depth 24 :1
  • 多用户并发:为每个用户创建并启用各自的 vncserver@:<n>.service,分别开放 590n/tcp

五 安全加固与常见问题

  • 安全建议:
    • 在公网环境优先通过 SSH 隧道 加密 VNC(例如本地端口转发:ssh -L 5901:localhost:5901 <服务器IP>,然后连接 localhost:1),或限制来源 IP。
    • 保持系统与 VNC 组件更新,使用强密码,必要时结合更高层认证。
  • 常见问题排查:
    • 连接被拒/超时:核对防火墙与云安全组是否放行 5901/tcp,确认服务已启动 systemctl status vncserver@:1.service
    • 灰屏/无桌面:确认已安装桌面环境(如 sudo yum groupinstall "Server with GUI" 或安装 XFCE),并在服务参数中指定合适的 -geometry-depth
    • 端口占用:使用 ss -lntp | grep 590 检查占用,结束旧会话后再启动;必要时更换显示号。

0