> 技术文档 > Ubuntu 24.04 系统下 VNC Server 完整安装与配置指南_ubuntu安装vnc

Ubuntu 24.04 系统下 VNC Server 完整安装与配置指南_ubuntu安装vnc


Ubuntu 24.04 系统下 VNC Server 完整安装与配置指南

在远程管理 Ubuntu 24.04 服务器或桌面时,VNC(Virtual Network Computing)是常用工具,能提供图形化远程桌面体验。本文将以 TigerVNC(稳定性高、兼容性强的 VNC 实现)为例,详细讲解从系统更新到服务注册、远程连接的全流程,适合新手和有一定 Linux 基础的用户参考。

一、前置准备:更新系统安装包

在安装任何新软件前,建议先更新系统的软件包索引,确保后续安装的软件是最新版本,同时避免依赖冲突。

打开终端(快捷键 Ctrl+Alt+T),执行以下命令

bash

sudo apt update
  • 说明:sudo 表示以管理员权限执行,执行时需输入当前用户密码(输入时密码不显示,输完按回车即可);apt update 仅更新软件包索引,不实际升级软件,过程通常耗时 1-3 分钟(取决于网络速度)。

二、安装 TigerVNC Server

TigerVNC 是官方推荐的独立 VNC 服务器,支持多种桌面环境(如 GNOME、XFCE),此处提供 在线安装离线安装 两种方式,可根据网络环境选择。

方式 1:在线安装(推荐,网络通畅时)

直接通过 Ubuntu 官方软件源安装,命令如下:

bash

sudo apt install tigervnc-standalone-server
  • 执行过程中会提示 “是否继续安装”,输入 y 并回车即可,系统会自动下载并安装依赖包,全程无需手动干预。

三、设置 VNC 访问密码

VNC 连接需密码验证,确保远程访问安全。执行以下命令设置密码:

bash

vncpasswd

执行后会出现以下交互提示,按步骤操作:

  1. 首先输入密码(密码长度建议 6-8 位,需包含字母和数字,输入时不显示),按回车;
  2. 再次输入密码确认,按回车;
  3. 最后会提示 Would you like to enter a view-only password (y/n)?(是否设置 “仅查看” 密码,即只能看不能操作),务必输入 n 并回车(避免限制操作权限)。
  • 密码会保存在 ~/.vnc/ 目录下(~ 表示当前用户的家目录),后续可通过再次执行 vncpasswd 修改密码。

四、创建 xstartup 配置文件

VNC 启动时需要加载桌面环境配置,需手动创建 xstartup 文件(指定使用 Ubuntu 默认的 GNOME 桌面),步骤如下:

1. 创建并编辑文件

执行命令打开 nano 文本编辑器,创建 ~/.vnc/xstartup 文件

bash

sudo nano ~/.vnc/xstartup

2. 粘贴配置内容

将以下内容完整复制到编辑器中(注意不要遗漏或修改任何一行):

bash

#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSexport GNOME_SHELL_SESSION_MODE=ubuntuexport XDG_CURRENT_DESKTOP=ubuntu:GNOMEexport XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdgexec gnome-session

3. 保存并退出

  • Ctrl+O(字母 O,不是数字 0)保存文件,按回车确认文件名;
  • Ctrl+X 退出 nano 编辑器。

4. 赋予执行权限(关键步骤)

刚创建的 xstartup 文件默认没有执行权限,需手动添加,否则 VNC 启动时会报错:

bash

sudo chmod +x ~/.vnc/xstartup
  • chmod +x 表示给文件添加 “可执行” 权限,确保 VNC 服务能正常调用该配置。

五、手动启动 VNC Server 并验证

配置完成后,先手动启动 VNC 服务,验证是否能正常运行。

1. 手动启动命令

bash

vncserver :3 -geometry 1920x1080 -localhost no -depth 24
  • 参数说明:
    • :3:指定 VNC 的显示编号为 3(对应端口为 5903,端口规则:5900 + 显示编号);
    • -geometry 1920x1080:设置远程桌面分辨率为 1920x1080(可根据需求修改,如 1366x768);
    • -localhost no:允许非本地设备(如其他电脑)连接(若设为 yes,则仅允许服务器本机连接);
    • -depth 24:设置颜色深度为 24 位(色彩显示更细腻,常用值还有 16 位)。

2. 验证启动状态

执行以下命令查看 VNC 服务是否启动成功:

bash

vncserver -list

若输出类似以下内容,说明启动成功:

plaintext

TigerVNC server sessions:X DISPLAY #RFB PORT #RFB UNIX PATHPROCESS ID #SERVER3 5903  2231 Xtigervnc
  • 关键信息:X DISPLAY # 为 3,RFB PORT # 为 5903(后续远程连接需用到该端口),PROCESS ID # 为服务进程号(可用于强制关闭服务)。

  • 若启动失败:可执行 vncserver -kill :3 关闭残留进程,检查 xstartup 文件内容是否正确,或重新执行前面的配置步骤。

六、注册 VNC 系统服务(实现开机自启)

手动启动的 VNC 服务在服务器重启后会失效,需将其注册为系统服务,实现 “开机自动启动” 和 “服务化管理”(如启停、状态查看)。

1. 创建服务配置文件

需在 /etc/systemd/system/ 目录下创建 vncserver@:3.service 文件(@:3 对应前面的显示编号 3,若修改显示编号,此处需同步修改)。

执行命令创建并编辑文件:

bash

sudo nano /etc/systemd/system/vncserver@:3.service

2. 粘贴服务配置内容

将以下内容复制到编辑器中,注意替换 为你的 Ubuntu 用户名(如当前用户是 ubuntu,则将所有 改为 ubuntu):

ini

[Unit]Description=Remote desktop service (VNC) # 服务描述After=syslog.target network.target # 服务依赖:在日志服务和网络服务启动后启动[Service]Type=forking # 服务类型:后台运行User= # 运行服务的用户(替换为你的用户名)Environment=HOME=/home/ # 设置用户家目录Environment=\"DISPLAY=:%i\"  # 显示编号(%i 对应 @:3 中的 3)Environment=PATH=/usr/bin:/usr/sbin:/bin:/sbin # 系统环境变量路径# 启动前清理旧的 VNC 进程ExecStartPre=/bin/sh -c \'/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :\'# 启动 VNC 服务(分辨率与手动启动一致)ExecStart=/bin/sh -c \'/usr/bin/vncserver %i -geometry 1920x1080 -localhost no\'# PID 文件路径(记录服务进程号,普通用户用此路径)PIDFile=/home//.vnc/%H%i.pid# 若为 root 用户,需将上一行改为:PIDFile=/root/.vnc/%H%i.pid# 停止服务时关闭 VNC 进程ExecStop=/bin/sh -c \'/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :\'Restart=on-failure # 服务失败时自动重启RestartSec=5 # 重启间隔时间(5 秒)[Install]WantedBy=multi-user.target # 服务安装目标:多用户模式下生效

3. 重新加载系统服务

修改或新增服务配置文件后,需重新加载 systemd 配置,让系统识别新服务:

bash

sudo systemctl daemon-reload

4. 设置开机自启并启动服务

执行以下命令完成服务配置:

  1. 设置开机自启:

    bash

  • sudo systemctl enable vncserver@:3.service

     

    • 成功会提示:Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@:3.service → /etc/systemd/system/vncserver@:3.service.
  • 启动服务:

    bash

  • sudo systemctl start vncserver@:3.service
  • 查看服务运行状态:

    bash

sudo systemctl status vncserver@:3.service
  • 若输出中包含 active (running)(绿色),说明服务正常运行;
  • 若显示 failed(红色),执行以下命令查看详细日志,定位失败原因:

    bash

  1. journalctl -xeu vncserver@:3.service

    七、关键配置:禁用 Wayland 并重启 GDM3

    Ubuntu 24.04 默认使用 Wayland 显示服务器,但 Wayland 与 VNC 兼容性较差,会导致远程桌面无法正常显示,需强制使用 Xorg 显示服务器。

    1. 修改 GDM3 配置文件

    GDM3 是 Ubuntu 的默认登录管理器,需修改其配置禁用 Wayland:

    bash

    sudo nano /etc/gdm3/custom.conf

    2. 禁用 Wayland

    在打开的文件中,找到 #WaylandEnable=false 这一行,删除开头的 # 注释符(若文件中没有这一行,直接在末尾添加 WaylandEnable=false)。

    3. 重启 GDM3 服务

    修改配置后需重启 GDM3 生效(重启过程中当前桌面会暂时断开,建议保存好工作内容):

    bash

    sudo systemctl restart gdm3

    八、远程连接:使用 VNC Viewer 访问

    完成以上所有配置后,即可通过 VNC 客户端(如 VNC Viewer、RealVNC)连接 Ubuntu 服务器。

    连接步骤:

    1. 下载并安装 VNC 客户端:在本地电脑(Windows/macOS/Linux)上安装 VNC Viewer(官网:RealVNC,免费版可满足基本需求)。
    2. 输入连接地址:打开 VNC Viewer,在地址栏输入 服务器IP:5903(如 192.168.1.100:59035903 对应前面的显示编号 3)。
    3. 验证密码:点击连接后,输入第三步设置的 VNC 密码,即可进入 Ubuntu 远程桌面。

    常见问题与解决方法

    1. 远程连接时提示 “连接被拒绝”

      • 检查 VNC 服务是否正常运行:sudo systemctl status vncserver@:3.service
      • 确认服务器防火墙是否开放 5903 端口:执行 sudo ufw allow 5903/tcp 开放端口(若启用了防火墙)。
    2. 远程桌面显示空白或黑屏

      • 检查 xstartup 文件内容是否正确,且是否有执行权限(sudo chmod +x ~/.vnc/xstartup);
      • 确认 Wayland 已禁用(cat /etc/gdm3/custom.conf | grep WaylandEnable 查看是否为 WaylandEnable=false)。
    3. 服务启动失败,日志提示 “权限不足”

      • 检查服务配置文件中 UserPIDFile 路径是否正确(尤其是普通用户和 root 用户的路径区别);
      • 确保 ~/.vnc/ 目录的权限为当前用户所有:sudo chown -R : ~/.vnc/