温馨提示×

TigerVNC在Linux上如何使用

小樊
45
2025-12-20 15:47:30
栏目: 智能运维

TigerVNC 在 Linux 上的使用指南

一 安装与准备

  • 准备桌面环境:TigerVNC 需要图形会话,先安装桌面(如 Xfce、GNOME)。例如在 Debian/Ubuntu 上可执行:sudo apt install xfce4 xfce4-goodies;若使用 GNOME,可安装相应会话包(如 gnome-session-flashback)。
  • 安装 TigerVNC 服务器:
    • Debian/Ubuntu:sudo apt install tigervnc-standalone-server tigervnc-common
    • RHEL/CentOS 7:sudo yum install tigervnc-server
  • 设置 VNC 密码:切换到目标用户后执行 vncpasswd,按提示设置访问密码(可选设置仅观看密码)。

二 快速启动与端口规则

  • 启动会话:执行 vncserver :1 -geometry 1920x1080 -localhost no
    • :1 表示显示编号,对应 RFB 端口 5901(规则为 5900 + 显示编号)。
    • -localhost no 允许来自其他主机的连接;若仅本机/SSH 隧道访问,可设为 yes
  • 查看与关闭:
    • 查看会话:tigervncserver -list
    • 关闭会话:tigervncserver -kill :1(或 -kill :* 关闭全部)。

三 配置桌面会话 xstartup

  • 首次运行 vncserver 会在 $HOME/.vnc/ 生成 xstartup 脚本与日志。按所用桌面环境编辑该脚本并赋权:
    • Xfce 示例:
      #!/bin/sh
      xrdb $HOME/.Xresources
      startxfce4 &
      
    • GNOME 示例(会话名可能为 gnome-sessiongnome-session-flashback):
      #!/bin/sh
      export XKL_XMODMAP_DISABLE=1
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
      [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
      xsetroot -solid grey
      vncconfig -iconic &
      gnome-session &     # 或 gnome-session-flashback &
      gnome-panel &
      gnome-settings-daemon &
      metacity &
      nautilus &
      gnome-terminal &
      
  • 赋权并重启会话:chmod +x ~/.vnc/xstartup,然后 tigervncserver -kill :1vncserver :1

四 连接与安全加固

  • 直连方式:客户端使用 服务器IP:显示编号(如 192.0.2.10:1,对应端口 5901)。
  • SSH 隧道(推荐):在本地执行 ssh -L 5901:127.0.0.1:5901 USER@SERVER_IP,客户端连接 localhost:1,可避免明文暴露 VNC 端口。
  • 防火墙与端口:
    • firewalld:sudo firewall-cmd --permanent --add-service=vnc-server && sudo firewall-cmd --reload(开放 5900–5903 等所需范围)。
    • 或按端口开放:sudo firewall-cmd --permanent --add-port=5901/tcp && sudo firewall-cmd --reload
  • 仅本地访问:启动 VNC 时使用 -localhost yes,配合 SSH 隧道更安全。

五 systemd 多用户与常见发行版差异

  • RHEL/CentOS 7 常见做法:
    • 复制服务模板:sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service,将 <USER> 替换为实际用户名。
    • 为用户设置密码:su - <USER> && vncpasswd
    • 启用并启动:sudo systemctl enable --now vncserver@:2.service
  • 部分新版本(RHEL/CentOS 8+/Fedora)使用 /etc/tigervnc/vncserver.users 映射显示编号与用户,例如::2=user1:3=user2,再按需启用对应服务。
  • 旧版系统(如 CentOS 6)使用 /etc/sysconfig/vncservers 配置 VNCSERVERSVNCSERVERARGS 并配合 service vncserver start/stop 管理。
  • 提示:不同发行版/版本的默认行为与配置文件路径可能不同,请以本机实际环境与发行版文档为准。

0