跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

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

Ubuntu 24.04 系统默认使用 Wayland 显示服务器,与 VNC 兼容性较差。介绍基于 TigerVNC 实现远程桌面连接的完整流程。主要步骤包括更新系统包、安装 TigerVNC Server、设置访问密码、配置 xstartup 文件以支持 GNOME 桌面、手动启动服务并验证、注册 systemd 服务实现开机自启,以及修改 GDM3 配置禁用 Wayland 强制使用 Xorg。最后通过 VNC Viewer 客户端连接服务器 IP 及端口完成远程访问。若遇连接拒绝或黑屏问题,可检查防火墙端口、xstartup 权限及 Wayland 状态。

FrontendX发布于 2026/3/29更新于 2026/5/2728 浏览

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

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

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

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

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

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

首先保证 GNOME 依赖完整:

若为 server 版(没有图形界面组件),先安装 GNOME 完整会话组件

sudo apt install -y gnome-session gnome-shell gnome-panel gnome-settings-daemon

安装 VNC 与 GNOME 兼容的依赖

sudo apt install -y dbus-x11 x11-xserver-utils xauth

二、安装 TigerVNC Server

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

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

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

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

三、设置 VNC 访问密码

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

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 文件

sudo nano ~/.vnc/xstartup
2. 粘贴配置内容

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

#!/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
3. 保存并退出
  • 按 Ctrl+O(字母 O,不是数字 0)保存文件,按回车确认文件名;
  • 按 Ctrl+X 退出 nano 编辑器。
4. 赋予执行权限(关键步骤)

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

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

五、手动启动 VNC Server 并验证

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

1. 手动启动命令
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 服务是否启动成功:

vncserver -list

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

TigerVNC server sessions: X DISPLAY # RFB PORT # RFB UNIX PATH PROCESS ID # SERVER 3 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,若修改显示编号,此处需同步修改)。

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

sudo nano /etc/systemd/system/vncserver@:3.service
2. 粘贴服务配置内容

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

[Unit]
Description=Remote desktop service (VNC) # 服务描述
After=syslog.target network.target # 服务依赖:在日志服务和网络服务启动后启动

[Service]
Type=forking # 服务类型:后台运行
User=<username> # 运行服务的用户(替换为你的用户名)
Environment=HOME=/home/<username> # 设置用户家目录
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/<username>/.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 配置,让系统识别新服务:

sudo systemctl daemon-reload
4. 设置开机自启并启动服务

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

  1. 设置开机自启:
sudo systemctl enable vncserver@:3.service

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

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

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

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

1. 修改 GDM3 配置文件

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

sudo nano /etc/gdm3/custom.conf
2. 禁用 Wayland

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

3. 重启 GDM3 服务

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

sudo systemctl restart gdm3

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

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

连接步骤:
  1. 下载并安装 VNC 客户端:在本地电脑(Windows/macOS/Linux)上安装 VNC Viewer(下载地址:https://www.realvnc.com/,免费版可满足基本需求)。
  2. 输入连接地址:打开 VNC Viewer,在地址栏输入 服务器 IP:5903(如 192.168.1.100:5903,5903 对应前面的显示编号 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. 服务启动失败,日志提示'权限不足':
    • 检查服务配置文件中 User 和 PIDFile 路径是否正确(尤其是普通用户和 root 用户的路径区别);
    • 确保 ~/.vnc/ 目录的权限为当前用户所有:sudo chown -R <username>:<username> ~/.vnc/。

目录

  1. Ubuntu 24.04 系统下 VNC Server 完整安装与配置指南
  2. 一、前置准备:更新系统安装包
  3. 二、安装 TigerVNC Server
  4. 方式 1:在线安装(推荐,网络通畅时)
  5. 三、设置 VNC 访问密码
  6. 四、创建 xstartup 配置文件
  7. 1. 创建并编辑文件
  8. 2. 粘贴配置内容
  9. 3. 保存并退出
  10. 4. 赋予执行权限(关键步骤)
  11. 五、手动启动 VNC Server 并验证
  12. 1. 手动启动命令
  13. 2. 验证启动状态
  14. 六、注册 VNC 系统服务(实现开机自启)
  15. 1. 创建服务配置文件
  16. 2. 粘贴服务配置内容
  17. 启动前清理旧的 VNC 进程
  18. 启动 VNC 服务(分辨率与手动启动一致)
  19. PID 文件路径(记录服务进程号,普通用户用此路径)
  20. 若为 root 用户,需将上一行改为:PIDFile=/root/.vnc/%H%i.pid
  21. 停止服务时关闭 VNC 进程
  22. 3. 重新加载系统服务
  23. 4. 设置开机自启并启动服务
  24. 七、关键配置:禁用 Wayland 并重启 GDM3
  25. 1. 修改 GDM3 配置文件
  26. 2. 禁用 Wayland
  27. 3. 重启 GDM3 服务
  28. 八、远程连接:使用 VNC Viewer 访问
  29. 连接步骤:
  30. 常见问题与解决方法
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • JESD204B 协议链路建立机制与 Xilinx IP 仿真实战
  • 小白转行 Python 数据分析的职业规划与学习路径
  • 链表应用实战:从内存管理到缓存淘汰
  • 鸿蒙 ArkWeb 组件内核:加载机制与 Cookie 管理
  • OpenClaw 实战:利用 AI 代理实现自动化盯盘与策略分析
  • SSM 框架文件上传功能实战:从前端到后端完整流程
  • 前端面试核心考点解析:JavaScript 原理、Vue 机制与性能优化
  • CCF-GESP 2025 年 6 月 C++ 一级真题解析
  • Finnhub Python API 客户端 5 个常见问题及解决方案
  • Java 大厂实习面试高频技术题汇总与解析
  • AIGC 个性化与定制化内容生成:技术原理与应用实践
  • 直流无刷电机 FOC 矢量控制算法详解
  • 鸿蒙 HarmonyOS 6 混合开发实战:ArkWeb 加载机制与 Cookie 管理
  • Spring Cloud Alibaba Nacos 使用详解
  • MultiResUNet:重新思考多模态医学图像分割的 U-Net 架构
  • C++ 实现:基于正倒排索引的 Boost 搜索引擎
  • Awesome GitHub Copilot:打造个性化辅助编程工具
  • PyCharm 中 GitHub Copilot 插件安装与配置指南
  • MySQL 数据库数据类型选型避坑指南
  • C 语言排序算法详解:插入排序与希尔排序

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online