首页主机资讯tigervnc在ubuntu上如何配置

tigervnc在ubuntu上如何配置

时间2026-01-20 15:27:04发布访客分类主机资讯浏览504
导读:Ubuntu 上配置 TigerVNC 的完整步骤 一 环境准备与安装 更新索引并安装桌面与服务器组件(以 Ubuntu 22.04/24.04 为例,若已安装桌面可跳过桌面安装): 安装桌面(二选一): 完整桌面:sudo apt...

Ubuntu 上配置 TigerVNC 的完整步骤

一 环境准备与安装

  • 更新索引并安装桌面与服务器组件(以 Ubuntu 22.04/24.04 为例,若已安装桌面可跳过桌面安装):
    • 安装桌面(二选一):
      • 完整桌面:sudo apt install ubuntu-desktop
      • 轻量替代:sudo apt install xfce4 xfce4-goodies
    • 安装 TigerVNC 服务端:sudo apt install tigervnc-standalone-server
  • 若系统为 Ubuntu Server,需先启用图形目标:sudo systemctl set-default graphical.target
  • 防火墙放行(如启用 UFW):sudo ufw allow 5901:5910/tcp(示例开放 5901–5910,对应 :1–:10)

二 初始化与基础配置

  • 切换到目标普通用户,初始化 VNC 密码(不要使用 sudo):vncpasswd(只读密码建议选 n
  • 首次运行会自动创建 ~/.vnc,可查看实例:vncserver -list;停止实例:vncserver -kill :1
  • 端口规则:显示号 :n 对应端口 5900+n(如 :1 → 5901
  • 常用启动参数(示例):vncserver :1 -geometry 1600x900 -depth 24 -localhost no
    • 说明:-localhost no 允许远程直连;如仅本机隧道访问可保持默认 localhost 限制

三 桌面会话与 xstartup 配置

  • 使用 Xfce(轻量稳定,推荐服务器场景):
    • 配置 ~/.vnc/xstartup
      #!/bin/sh
      xrdb $HOME/.Xresources
      startxfce4 &
          
      
    • 赋权:chmod +x ~/.vnc/xstartup
  • 使用 GNOME(两种常见做法,二选一)
    • 方式 A(会话文件选择,较新版本常用):创建 ~/.xsessionrc
      export XAUTHORITY=$HOME/.Xauthority
      export XDG_CURRENT_DESKTOP=ubuntu:GNOME
      export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
      
      之后直接启动 VNC,TigerVNC 会使用 /etc/X11/Xtigervnc-session 启动 GNOME(通常无需手写 xstartup)。
    • 方式 B(显式启动会话,兼容旧版/Flashback):配置 ~/.vnc/xstartup
      #!/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 --session=gnome-flashback-metacity --disable-acceleration-check &
          
      
      赋权:chmod +x ~/.vnc/xstartup
  • 提示:可用 ls /usr/share/xsessions/ 查看可用会话名(如 ubuntu.desktop、xfce.desktop),据此调整启动命令

四 连接与安全加固

  • 直接远程连接(开放端口时):客户端连接 服务器IP:5901(对应 :1)。为降低暴露面,优先使用 SSH 隧道
    • 本地端口转发:ssh -L 5901:127.0.0.1:5901 用户名@服务器IP
    • 客户端连接:localhost:1
  • 证书加密(可选,提升安全性与完整性):
    • 生成证书(将 x.x.x.x 替换为服务器 IP 或域名):
      openssl req -x509 -newkey rsa -days 3650 -nodes \
        -config /usr/lib/ssl/openssl.cnf \
        -keyout ~/.vnc/vnc-server-private.pem \
        -out ~/.vnc/vnc-server.pem \
        -subj '/CN=你的服务器名称' \
        -addext "subjectAltName=IP:x.x.x.x"
      
    • 配置 ~/.vnc/config
      session=ubuntu
      geometry=1600x900
      depth=24
      localhost=no
      X509Cert=/home/你的用户名/.vnc/vnc-server.pem
      X509Key=/home/你的用户名/.vnc/vnc-server-private.pem
      SecurityTypes=X509Vnc
      
    • 重启实例后生效

五 开机自启与多用户扩展

  • 单用户便捷方案(推荐):创建自动登录的 getty 服务,登录即自动启动 vncserver,体验接近物理登录(适合个人单用户)。思路为复制并改造 /lib/systemd/system/getty@.service 为自定义服务,在登录会话中启动 vncserver。该方式权限与本地登录一致,便于需要 sudo 的图形化操作。具体单元文件与改造步骤可参考实践文章说明。
  • 系统级服务方案(传统做法,示例):
    • 新建 /etc/systemd/system/vncserver@:1.service(以 :1 为例,其他显示号替换即可):
      [Unit]
      Description=TigerVNC Server :1
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=你的用户名
      Group=你的用户名
      WorkingDirectory=/home/你的用户名
      PIDFile=/home/你的用户名/.vnc/%H:1.pid
      ExecStartPre=-/usr/bin/vncserver -kill :1 >
           /dev/null 2>
          &
          1
      ExecStart=/usr/bin/vncserver :1 -geometry 1600x900 -depth 24 -localhost no
      ExecStop=/usr/bin/vncserver -kill :1
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用与启动:
      sudo systemctl daemon-reload
      sudo systemctl enable --now vncserver@:1.service
      sudo systemctl status vncserver@:1.service
      
  • 多用户扩展:为每个用户分别初始化 vncpasswd、配置 xstartup~/.xsessionrc,分配不同显示号(如 :1、:2),并确保防火墙与端口范围放行;必要时使用独立的 systemd 服务单元(如 vncserver@:2.service)管理。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: tigervnc在ubuntu上如何配置
本文地址: https://pptw.com/jishu/787317.html
ubuntu上tigervnc使用教程 如何通过tigervnc远程控制ubuntu

游客 回复需填写必要信息