温馨提示×

TigerVNC在Linux上如何配置远程桌面

小樊
31
2025-12-12 18:06:08
栏目: 智能运维

TigerVNC 在 Linux 上的远程桌面配置指南

一 环境准备与安装

  • 准备桌面环境:VNC 需要一个图形会话。无图形时先安装,例如在 CentOS 7 上执行:
    • yum groupinstall “X Window System” -y
    • yum groupinstall “GNOME Desktop” “Graphical Administration Tools” -y
    • systemctl set-default graphical.target && reboot
  • 安装 TigerVNC 服务器:
    • RHEL/CentOS:sudo yum install -y tigervnc-server
    • Debian/Ubuntu:sudo apt-get install -y tigervnc-standalone-server tigervnc-common
  • 客户端:任意 VNC Viewer(如 TigerVNC Viewer、RealVNC Viewer、MobaXterm 内置 VNC)。建议优先使用 SSH 隧道 提高安全性。

二 快速上手 直接以用户会话启动

  • 切换到目标用户并设置 VNC 密码:
    • su - youruser
    • vncpasswd(可设置仅观看密码)
  • 启动虚拟桌面(示例为显示号 :1,分辨率 1920x1080):
    • tigervncserver :1 -geometry 1920x1080 -localhost no
    • 说明:显示号与端口关系为 :n → 5900+n,因此 :1 对应 5901
  • 常用管理:
    • 查看会话:tigervncserver -list
    • 关闭会话:tigervncserver -kill :1
  • 连接示例:VNC Viewer 输入 服务器IP:5901

三 生产推荐 systemd 服务方式

  • RHEL/CentOS 7 模板方式(每个显示号一个服务单元):
    • 复制模板:sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    • 编辑单元:将 替换为实际用户,按需设置分辨率,例如:
      • ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
    • 重新加载并启用:
      • systemctl daemon-reload
      • systemctl enable --now vncserver@:1.service
  • RHEL/CentOS 8+/Fedora 新方式(集中用户映射):
    • 编辑映射:/etc/tigervnc/vncserver.users,添加如 :2=user1
    • 配置默认参数:/etc/tigervnc/vncserver-config-defaults,例如
      • session=gnome
      • alwaysshared
    • 为用户设置密码:su - user1 && vncpasswd
    • 启动服务:systemctl enable --now vncserver@:2
  • 端口说明:显示号 :n 对应 5900+n(如 :2 → 5902)。

四 配置桌面会话与常见问题

  • 配置 xstartup(决定登录后启动的桌面环境):
    • 文件位置:~/.vnc/xstartup,务必 chmod +x
    • Xfce 示例(轻量稳定):
      • #!/bin/sh xrdb $HOME/.Xresources startxfce4 &
    • GNOME 示例(会话变量与组件按需调整):
      • #!/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-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal &
  • 常见问题处理:
    • “A VNC server is already running as :1”:
      • 先尝试 vncserver -kill :1
      • 若残留套接字导致失败,清理:rm -f /tmp/.X11-unix/X1 后再启动
    • 端口未监听或连接被拒:确认服务已启动(如 systemctl status vncserver@:1)、显示号与端口对应正确(:1→5901)。

五 防火墙与安全建议

  • 防火墙放行(示例为永久放行 5901,多用户可按需放行一段端口):
    • firewalld:sudo firewall-cmd --permanent --add-service=vnc-server && sudo firewall-cmd --reload
  • 推荐通过 SSH 隧道 访问(避免直暴露 5900+ 端口到公网):
    • 建立隧道:ssh -L 5901:127.0.0.1:5901 user@server
    • 客户端连接:localhost:1(隧道将本地 5901 转发到服务器 5901)
  • 若必须直连公网,建议仅开放必要端口、限制来源 IP,并优先使用强认证与加密通道。

0