ubuntu24.04系统安装VNC

ubuntu24.04系统安装VNC

前言:

VNC(Virtual Network Computing,虚拟网络计算)是一种基于 RFB(Remote Frame Buffer,远程帧缓冲)协议的跨平台远程控制技术,允许用户通过网络在本地计算机上操作远程计算机的桌面环境,实现图形化的远程访问与控制。

一、VNC 的核心原理

VNC 的工作模式分为服务端(VNC Server) 和客户端(VNC Viewer) 两部分:

  1. 服务端:安装在被远程控制的计算机上,负责捕获本地桌面的帧缓冲数据,将画面编码后通过 RFB 协议发送给客户端,并接收客户端的输入指令(鼠标、键盘操作)执行。
  2. 客户端:安装在控制端计算机上,负责接收服务端传输的桌面画面并显示,同时将用户的输入指令转发给服务端。
  3. RFB 协议:VNC 的底层通信协议,采用 “客户端请求 - 服务端响应” 模式,支持多种图像编码方式(如 RAW、ZRLE、Tight 等),可根据网络带宽自适应调整画质,保证不同网络环境下的可用性。

二、VNC 的关键特点

  1. 跨平台性:VNC 服务端和客户端支持 Windows、Linux(包括 Ubuntu、CentOS 等发行版)、macOS、甚至嵌入式系统(如树莓派),不同系统间可互相远程控制(例如 Windows 控制 Ubuntu,macOS 控制 Windows)。
  2. 轻量化:VNC 服务端占用系统资源少,无需高性能硬件支持,适合对低配设备的远程管理(如服务器、嵌入式设备)。
  3. 灵活性:支持多种连接方式(直连、通过 VNC 中继器 / 网关间接连接),可配置访问密码、端口号,部分版本还支持加密传输(如通过 SSH 隧道或 TLS 加密)。
  4. 开源性:主流 VNC 实现(如 RealVNC 的免费版、TightVNC、UltraVNC、x11vnc)多为开源或免费,可自由定制和扩展。

三、主流 VNC 实现工具

不同场景下常用的 VNC 工具差异较大,以下是典型代表:

工具名称适用系统核心优势典型用途
TightVNCWindows/Linux高压缩比(适合低带宽)、支持文件传输个人远程办公、设备管理
RealVNC全平台(含移动端)商业版支持加密、云连接,稳定性强企业级远程支持、跨设备控制
x11vncLinux(X11 桌面)直接映射现有 X11 会话,无需新建桌面Linux 服务器本地桌面远程管理
TigerVNCLinux/Windows高性能、支持 OpenGL 硬件加速对图形性能要求高的场景(如 3D 建模)
UltraVNCWindows支持屏幕缩放、多人连接,免费开源个人 / 小型团队远程协助

四、VNC 的典型应用场景

  1. 服务器远程管理:Linux 服务器通常无物理显示器,通过 VNC 可图形化配置系统、安装软件(替代纯命令行操作)。
  2. 远程办公 / 协助:在家访问公司电脑、帮助他人排查电脑故障(无需物理到场)。
  3. 嵌入式设备控制:树莓派、工业控制设备等无桌面的设备,通过 VNC 实现可视化操作。
  4. 多设备统一管理:企业 IT 管理员通过 VNC 批量管理多台终端设备,提高运维效率。

五、VNC 的局限性与注意事项

  1. 安全性:原生 VNC 传输未加密(明文),易被监听,建议通过 SSH 隧道、VPN 或使用支持 TLS 加密的版本(如 RealVNC 商业版)。
  2. 网络依赖性:低带宽下画质会下降、操作延迟增加,需根据网络情况调整编码方式。
  3. 分辨率适配:部分 VNC 工具对不同分辨率屏幕的适配性较差,可能出现画面拉伸或显示不全。
  4. 权限管理:需确保服务端配置严格的访问权限(如强密码、指定允许连接的 IP),避免未授权访问。

六、VNC 与其他远程控制技术的区别

VNC 与 RDP(远程桌面协议)、SSH(安全外壳协议)的核心差异如下:

  • 与 RDP 对比:RDP 是 Windows 原生协议,性能更高(支持增量更新),但跨平台性差;VNC 跨平台性强,但性能略逊于 RDP(尤其高分辨率场景)。
  • 与 SSH 对比:SSH 仅支持命令行远程操作,安全性高;VNC 支持图形化桌面,更适合非专业用户,但需额外配置加密。

教程示例

这里以ubuntu24.04系统、TigerVNC为例

先用root用户进行操作:

1. 更新软件源
sudo apt update && sudo apt upgrade -y
2. 安装图形化界面

如果是ubuntu的最小化安装,需要进系统升级下载桌面环境,不然VNC无法获取到服务器的正常画面

sudo apt install ubuntu-desktop -y
3. 下载VNC相关的组件依赖以及本省
sudo apt install tigervnc-standalone-server tigervnc-common -y
4. 配置vncserver密码

输入两遍密码,当最后询问是否设置“只读密码”时,输入n即可

vncpasswd
5. 配置启动脚本,这一步很关键,决定了连接后显示的是灰色背景还是完整的ubuntu桌面

这段脚本的作用是加载 Ubuntu 默认的 GNOME 桌面环境

#创建目录 mkdir -p ~/.vnc #编写文档 vim ~/.vnc/xstartup #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec /etc/X11/xinit/xinitrc #编写完成后,将文档添加执行权限 chmod +x ~/.vnc/xstartup
6. 配置systemd服务开机自启动

注意:文件名中的 @:1 代表显示编号为 1,对应端口为 5901

vim /etc/systemd/system/vncserver@\:1.service [Unit] Description=TigerVNC Server for %i After=syslog.target network.target [Service] Type=forking #这里两个ubuntu,是本作者系统中的用户,这里可更改为你们实际操作用户 User=ubuntu Environment=HOME=/home/ubuntu Environment="DISPLAY=:1" ExecStartPre=-/usr/bin/vncserver -kill :1 ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24 -localhost no ExecStop=/usr/bin/vncserver -kill :1 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target #保存退出后加载该配置 systemctl daemon-reload
7. 安装X11依赖、组件(这个不安装会导致开启VNC服务报错)
apt update && apt install -y \ xfce4 xfce4-goodies \ xorg xserver-xorg-core \ lightdm dbus-x11 \ tigervnc-standalone-server tigervnc-common #安装完成后,配置lightdm为默认显示管理器(解决会话启动问题) echo "lightdm shared/default-display-manager select lightdm" | debconf-set-selections dpkg-reconfigure lightdm -f noninteractive 
8. 关闭wayland并重启GDM3

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

sudo vim /etc/gdm3/custom.conf #修改完成后,重启GDM3 sudo systemctl restart gdm3
取消这一行前面的#号

切换ubuntu(实际使用用户)用户进行接下来的操作:

9. 切换为ubuntu用户、启动vncserver
su - ubuntu vncserver :1 -geometry 1920x1080 -depth 24 -localhost no -xstartup /home/ubuntu/.vnc/xstartup 
10. 开启vncserver
sudo systemctl start vncserver@:1.service sudo systemctl status vncserver@:1.service 
11. windows安装客户端vnc工具,安装完成后找到安装路径,点击打开工具

工具我已放在资源下载栏目中

输入对应的系统ifconfig的IP加上端口号
输入vncpasswd设置的密码,即可登录

Read more

人工智能:循环神经网络(RNN)与序列数据处理实战

人工智能:循环神经网络(RNN)与序列数据处理实战

循环神经网络(RNN)与序列数据处理实战 1.1 本章学习目标与重点 💡 学习目标:掌握循环神经网络的核心原理、经典变体结构,以及在文本序列任务中的实战开发流程。 💡 学习重点:理解 RNN 的循环计算机制,学会使用 TensorFlow/Keras 搭建基础 RNN 与 LSTM 模型,完成文本分类任务。 1.2 循环神经网络核心原理 1.2.1 为什么需要 RNN 💡 传统的前馈神经网络(如 CNN、全连接网络)的输入和输出是相互独立的。它们无法处理序列数据的上下文关联特性。 序列数据在现实中十分常见,比如自然语言文本、语音信号、时间序列数据等。这些数据的核心特点是,当前时刻的信息和之前时刻的信息紧密相关。 循环神经网络通过引入隐藏状态,可以存储历史信息,从而有效捕捉序列数据的上下文依赖关系。 1.2.2 RNN

By Ne0inhk

ubuntu24.04安装 openClaw+kimi2.5+飞书 详细教程

文章目录 * ubuntu24.04安装openClaw详细教程 * 准备工作: * 一、申请飞书小机器人 * 1.登录/注册 飞书账号 * 2.添加一个机器人 * 3.开通权限 im和用户相关的 * 4.复制需要的配置 * 注册大模型API * 1.登录/注册KIMI账号,进入开发者工作台 * 2.在API Key管理创建一个key * 安装openClaw * 开始配置,选QuickStart * 配置大模型 * 配置飞书 * 其他配置 * 配置飞书回调 * 飞书对话使用 * 问题处理 * 使用飞书发消息返回 access not configured. * openclaw-gateway 运行异常 * 有个飞书的警告,具体找不到了,好像是feishu overwrite什么鬼 ubuntu24.04安装openClaw详细教程 想看视频的话,推荐B站大佬 林粒粒呀 的windows安装openClaw

By Ne0inhk
做鸿蒙 App 一个月:10 个 ArkUI 大坑

做鸿蒙 App 一个月:10 个 ArkUI 大坑

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名) 大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。 我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。 技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、ZEEKLOG、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出 我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、

By Ne0inhk
Flutter 三方库 appstream 的鸿蒙化适配指南 - 驾驭 Linux 生态元数据规范,打造高性能、标准化、国际化的 OpenHarmony 桌面应用商店分发基石

Flutter 三方库 appstream 的鸿蒙化适配指南 - 驾驭 Linux 生态元数据规范,打造高性能、标准化、国际化的 OpenHarmony 桌面应用商店分发基石

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 appstream 的鸿蒙化适配指南 - 驾驭 Linux 生态元数据规范,打造高性能、标准化、国际化的 OpenHarmony 桌面应用商店分发基石 前言 随着鸿蒙(OpenHarmony)生态向 PC 和平板端的高速扩张,如何为海量的三方软件建立一套标准化的“数字档案”,成了构建应用商店生态的核心痛点。过去,开发者提交应用信息时,往往采用碎片化的 JSON 或自定义文档。这会导致软件分发时详情页展示不一、多语言支持混乱,甚至连基本的截图和版本日志都难以对齐。 为了解决这个问题,我们需要引入一套具备全球化视野的元数据定义标准。appstream 作为 Linux 生态下最重要的应用信息描述规范,能够通过结构化的 XML 标签,精准定义软件的身世、功能和展示资产。适配到鸿蒙平台后,它不仅能让你的重型“鸿蒙私有应用商店”瞬间具备吞金般的解析能力,

By Ne0inhk