温馨提示×

ubuntu tigervnc远程控制怎么用

小樊
44
2026-01-01 13:33:11
栏目: 智能运维

Ubuntu 上使用 TigerVNC 远程桌面的快速步骤

一 环境准备与安装

  • 更新系统并安装桌面环境(若未安装):sudo apt update && sudo apt install xfce4 xfce4-goodies(轻量推荐)或 sudo apt install ubuntu-desktop(GNOME)。
  • 安装 TigerVNC 服务器:sudo apt install tigervnc-standalone-server tigervnc-common。
  • 为当前用户设置 VNC 访问密码:vncpasswd(建议仅设操作密码,不启用仅查看)。

二 配置桌面会话与启动

  • 生成初始配置(如未生成):vncserver(首次会创建 ~/.vnc 与密码文件)。
  • 编辑会话启动脚本: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
      export GNOME_SHELL_SESSION_MODE=ubuntu
      export XDG_CURRENT_DESKTOP=ubuntu:GNOME
      export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
      exec gnome-session
      
  • 常用启动参数:vncserver :1 -geometry 1920x1080 -depth 24 -localhost no
    • 显示编号与端口映射::1 → 5901,:2 → 5902(规则为 5900 + 显示编号)。
    • -localhost no 允许来自其他主机的连接;若仅本机测试可省略或设为 yes。
  • 查看与关闭:vncserver -list;vncserver -kill :1。

三 连接与安全加固

  • 直连方式(开放端口时):在客户端(如 VNC Viewer)输入 服务器IP:5901。若启用了防火墙(如 ufw),放行端口:sudo ufw allow 5901/tcp。
  • SSH 隧道(推荐,加密且无需暴露端口):
    • 本地端口转发:ssh -L 5901:127.0.0.1:5901 用户名@服务器IP
    • 客户端连接:localhost:1(隧道映射到本机 5901,对应服务器 :1)。

四 常见问题与排查

  • 连接被拒绝或超时:
    • 检查服务是否运行:vncserver -list;若仅监听 127.0.0.1,重启并加 -localhost no。
    • 检查防火墙/云安全组是否放行对应端口(如 5901)。
  • 黑屏/灰屏或仅背景:
    • 确认已安装桌面环境(如 xfce4/ubuntu-desktop)。
    • 核对 ~/.vnc/xstartup 内容正确且具可执行权限;必要时用 vncserver -kill :1 后重启。
  • Ubuntu 24.04 默认使用 Wayland,可能与 VNC 兼容性差:
    • 编辑 /etc/gdm3/custom.conf,设置 WaylandEnable=false,重启 GDM3:sudo systemctl restart gdm3。

五 开机自启与多用户管理(可选)

  • systemd 单实例服务(以 :1 为例,替换 为实际用户名):
    1. 创建服务:sudo nano /etc/systemd/system/vncserver@:1.service
    2. 写入示例(Type=forking):
      [Unit]
      Description=Remote desktop service (VNC)
      After=syslog.target network.target
      
      [Service]
      Type=forking
      User=<username>
      Environment=HOME=/home/<username>
      Environment="DISPLAY=:%i"
      PIDFile=/home/<username>/.vnc/%H%i.pid
      ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
      ExecStart=/usr/bin/vncserver %i -geometry 1920x1080 -localhost no
      ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
      Restart=on-failure
      RestartSec=5
      
      [Install]
      WantedBy=multi-user.target
      
    3. 启用并启动:sudo systemctl daemon-reload && sudo systemctl enable --now vncserver@:1.service
    4. 查看状态与日志:systemctl status vncserver@:1.service;journalctl -xeu vncserver@:1.service
  • 多用户场景(RHEL/CentOS 系常见):编辑 /etc/tigervnc/vncserver.users 映射显示号与用户(如 :2=user1),并为各用户设置 vncpasswd,再用 systemctl 管理对应服务。

0