温馨提示×

ubuntu tigervnc如何共享桌面

小樊
39
2025-12-07 00:14:55
栏目: 智能运维

Ubuntu 上使用 TigerVNC 共享桌面的实用步骤

一 安装与准备

  • 安装桌面环境(无图形界面时):
    • 轻量方案:sudo apt install xfce4 xfce4-goodies
    • 完整方案:sudo apt install ubuntu-desktop(或 ubuntu-desktop-minimal
  • 安装 TigerVNC 服务器:sudo apt install tigervnc-standalone-server tigervnc-common
  • 为当前用户设置 VNC 密码(不要加 sudo):vncpasswd(可选是否创建只读密码)

二 配置桌面会话启动脚本

  • 创建或编辑启动脚本:nano ~/.vnc/xstartup,赋予可执行权限:chmod +x ~/.vnc/xstartup
  • 按桌面环境写入对应内容:
    • Xfce(推荐,轻量稳定):
      #!/bin/sh
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      exec startxfce4
      
    • GNOME(Ubuntu 默认):
      #!/bin/sh
      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 &
      x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
      gnome-session &
      
  • 如需自定义分辨率/色深,可在用户目录创建 ~/.vnc/config
    geometry=1920x1080
    dpi=96
    

三 启动与端口说明

  • 启动会话(示例):vncserver -localhost no -geometry 1920x1080 -depth 24 :1
    • 显示号 :1 对应 TCP 端口 5901(规则为 5900 + 显示号
    • 列出会话:vncserver -list;结束会话:vncserver -kill :1
  • 若启动时仅监听 127.0.0.1:5901 导致外网无法连接,请使用 -localhost no 参数启动
  • 建议将桌面会话与物理显示器会话分离:服务器场景可设为命令行默认启动
    • 查看当前默认目标:systemctl get-default
    • 设为多用户(命令行)目标:sudo systemctl set-default multi-user.target
    • 如需恢复图形登录:sudo systemctl set-default graphical.target

四 防火墙与连接

  • 防火墙放行(示例为 UFW):sudo ufw allow 5901/tcp
  • 客户端连接地址格式:<服务器IP>:<端口或显示号>,例如 192.168.1.100:5901192.168.1.100:1
  • Windows 客户端可用 TigerVNC ViewerMobaXterm;Linux 客户端可直接用 xtigervncviewer
  • 安全建议:VNC 协议本身不加密,建议通过 SSH 隧道 访问
    • 建立隧道(本地端口 59000 转发到远端 5901):
      ssh -L 59000:localhost:5901 -C -N -l <用户名> <服务器IP>
      
    • 客户端连接本地端口:localhost:59000(等价于连接远端 :1

五 常见问题与进阶

  • 连接被拒绝或仅本机可连:确认启动参数含 -localhost no,并检查云服务器安全组/本机防火墙已放行对应端口
  • 黑屏/灰屏或只有终端:检查 ~/.vnc/xstartup 是否按所用桌面环境正确配置,并确认已赋予可执行权限
  • 多用户与开机自启(可选):
    • 用户映射:sudo vim /etc/tigervnc/vncserver.users,如写入 :1=alice
    • 创建服务:sudo nano /etc/systemd/system/vncserver@.service,示例关键行:
      ExecStart=/usr/bin/vncserver -depth 32 -geometry 1920x1080 -localhost :%i
      PIDFile=/home/<用户名>/.vnc/%H:590%i.pid
      
    • 启用服务:sudo systemctl daemon-reload && sudo systemctl enable --now vncserver@1
  • 提升安全性:
    • 使用 SSH 隧道 或配置 TLS/X.509 证书(服务器端生成/部署证书,客户端在 viewer 中指定 CA/证书路径)
    • 设置复杂 VNC 密码,避免使用只读密码对外暴露操作能力

0