温馨提示×

如何使用Ubuntu TigerVNC进行屏幕共享

小樊
38
2025-11-21 07:18:58
栏目: 智能运维

Ubuntu 上使用 TigerVNC 进行屏幕共享

一 准备与安装

  • 安装桌面环境(无图形界面的服务器需要先安装):
    • 安装 Xfce(轻量稳定,远程体验好):sudo apt update && sudo apt install xfce4 xfce4-goodies
    • 或安装 Ubuntu 桌面(资源占用更高):sudo apt install tasksel && sudo tasksel install ubuntu-desktop && sudo systemctl set-default graphical.target && sudo reboot
  • 安装 TigerVNC 服务器:sudo apt install tigervnc-standalone-server

二 配置 VNC 会话

  • 设置 VNC 访问密码(不要使用 sudo):vncpasswd(可设置仅查看密码,建议不设)
  • 创建会话启动脚本:nano ~/.vnc/xstartup
    • 使用 Xfce 时:
      #!/bin/sh
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      exec startxfce4
      
    • 使用 GNOME 时:
      #!/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 &
      dbus-launch --exit-with-session gnome-session &
      
  • 赋予执行权限:chmod u+x ~/.vnc/xstartup
  • 可选:创建会话配置文件 ~/.vnc/config,自定义参数
    geometry=1920x1080
    dpi=96
    

三 启动与连接

  • 启动会话(示例):vncserver -localhost no -geometry 1280x720 -depth 24
    • 显示号 :1 对应端口 5901(规则为 5900 + 显示号
    • 查看会话:vncserver -list;结束会话:vncserver -kill :1
  • 防火墙放行(如使用 UFW):sudo ufw allow 5901/tcp
  • 客户端连接
    • 直接连接:在客户端输入服务器 IP 与端口,例如 192.168.1.100:5901
    • 推荐通过 SSH 隧道 提高安全性:
      • 本地终端:ssh -L 5901:127.0.0.1:5901 user@server
      • 客户端连接:127.0.0.1:5901

四 进阶 开机自启与多用户

  • 为指定用户创建 systemd 服务(将 your-username 替换为实际用户名):
    • 新建:sudo nano /etc/systemd/system/vncserver@.service
      [Unit]
      Description=Start TigerVNC server at startup
      After=multi-user.target
      
      [Service]
      Type=forking
      User=your-username
      Group=your-username
      PAMName=login
      PIDFile=/home/your-username/.vnc/%H%i.pid
      ExecStartPre=/usr/bin/vncserver -kill :%i >/dev/null 2>&1 || :
      ExecStart=/usr/bin/vncserver :%i -geometry 1920x1080 -depth 24 -localhost no
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用并启动:sudo systemctl daemon-reload && sudo systemctl enable --now vncserver@:1.service
  • 多用户要点:每个用户需在其自己的家目录下配置 ~/.vnc/xstartupvncpasswd,并使用不同的显示号(如 :1:2

五 常见问题与优化

  • 灰屏或桌面未启动:检查 ~/.vnc/xstartup 是否可执行,桌面命令是否与已安装桌面匹配(Xfce 用 startxfce4,GNOME 用 dbus-launch --exit-with-session gnome-session &)
  • 无法远程连接:确认启动时包含 -localhost no;如启用防火墙,放行对应 590X 端口;更安全的做法是始终通过 SSH 隧道 访问
  • 会话与端口:记住 :X → 5900+X;用 vncserver -list 查看,用 vncserver -kill :X 结束指定会话
  • 注销与锁屏:在 VNC 会话中避免点击“注销”,以免结束会话进程;如遇锁屏导致输入问题,可在系统设置中关闭锁屏或调整电源策略

0