跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具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/9/1083 浏览

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. 常见问题与解决方法

更多推荐文章

查看全部
  • 机器人身体结构与人体仿生学:四肢结构设计原则
  • 排查 VS Code Copilot 登录卡顿的几种办法
  • Java 渲染性能优化:15 个提升界面流畅度的技巧
  • Claude Skills 实战:自动化工作流与前端设计指南
  • JavaSE 网络协议:HTTP 请求与响应解析
  • 飞算 Java AI 编程助手功能介绍与实战演示
  • 零基础入门 8MAV:首个无人机编程实战
  • 大语言模型(LLM)研究进展与展望
  • 前端开发基础:HTML、CSS 与 JavaScript 入门梳理
  • C++11 核心新特性详解:初始化、右值引用与类型推导
  • 35 道常见前端 Vue 面试题详解
  • Node.js 安装与环境变量配置指南(Windows)
  • HackTheBox Expressway:ISAKMP 哈希破解与 Sudo 提权
  • DeepSeek 中冷启动数据与多阶段训练的作用
  • 智能体:AI 创业者为何纷纷选择这条路径
  • 渐进式 AIGC 系统:支持 Nano-Banana 绘画、VEO3/Sora-2 视频及 Agent 智能体
  • Python 与前端集成:构建全栈应用
  • Meta 与卡内基梅隆大学提出 GaLore:全参数微调内存减少 63.3%
  • FPGA 实现 CLAHE 自适应限制对比度直方图均衡算法
  • OpenClaw 安装与飞书机器人配置实战指南

相关免费在线工具

  • 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