news 2026/10/9 8:19:46

飞牛NAS虚拟机搭建Ubuntu桌面:从安装到远程访问的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
飞牛NAS虚拟机搭建Ubuntu桌面:从安装到远程访问的完整指南

1. 写在前面:为什么要在“NAS”里塞一个“Linux 桌面”

我大概是两年前开始接触飞牛 fnOS 的,当时纯粹是想把手头几块闲置硬盘利用起来,做一个家庭影音中心。说实话,那时候我对“NAS”的理解还停留在“网络硬盘”这个层面——能存文件、能备份照片、能跑个下载任务就差不多了。直到有一天我需要在办公室外临时编译一个 Linux 项目,手边又没有带笔记本,才第一次认真考虑:能不能让 NAS 不只是存储,而是直接变成一台常开的“远程电脑”?

答案是能的。飞牛自带的虚拟机功能基于 QEMU/KVM 方案开发,在 Web 管理界面里就能创建虚拟机、挂载 ISO 镜像、分配 CPU 和内存,然后一步步安装 Ubuntu。整个过程和你用 VMware 或 VirtualBox 在本地跑虚拟机非常相似,区别只是这套环境跑在 NAS 上,7x24 小时在线,随时能从浏览器或远程桌面连进来用。这篇博文就把我从“创建虚拟机”到“装好中文输入法、配置好桌面环境”的完整过程记录下来,适合手里有飞牛设备、又想得到一个常开 Linux 桌面的人参考。

我假设你的情况是:已经有一台飞牛 NAS,系统版本在 0.8.x 或更新,BIOS 里虚拟化功能已经开启,硬盘上还有至少 50GB 的空闲空间。如果你之前完全没接触过虚拟机,也没关系,我会把每一步的命令和点击位置都写清楚,你照着做就行。

2. 方案选型与部署前的关键决策

2.1 为什么不用 Docker,而是坚持用“虚拟机”

我知道很多人在这一步会犹豫:飞牛系统本身是基于 Debian 的 Linux,直接开 Docker 跑一个桌面容器不是更轻量吗?为什么非要用虚拟机“又重又慢”?

我的观点是:需求和场景决定方案。如果你只需要跑一个命令行工具、部署一个网页服务,Docker 当然合适,资源占用低、镜像拉取也方便。但如果你想得到一个“能长期开着、可以随意 apt install、能调试/dev/video0 摄像头设备、甚至当主力开发机”的 Linux 桌面,容器的隔离性反而会成为阻碍。容器和宿主机共享内核,设备映射、网络模式、系统初始化流程都和真实系统有差异,很多桌面级应用(比如需要 systemd 完整环境、需要改内核模块)在容器里会踩莫名其妙的坑。

虚拟机的好处是隔离彻底、环境独立,你在 Ubuntu 里把系统搞坏了,删掉重建一台也就是几分钟的事,对宿主机零影响。而且飞牛的虚拟机支持 VNC 显示,安装桌面版 Ubuntu 的图形界面毫无压力。代价是一部分性能和内存开销,不过对现代 x86 平台来说,这个开销完全可接受。

2.2 硬件配置建议:CPU、内存、存储怎么分配

飞牛的虚拟机调度资源是靠宿主机 CPU 和内存撑起来的,所以你在分配时要量力而行。我自己的机器是一台 J4125 四核小主机,16GB 内存,日常跑飞牛系统本身占用大约 2GB,剩下 14GB 都可以让给虚拟机和 Docker 容器。按照这个配置,我给 Ubuntu 虚拟机分配了 4 核 CPU 和 8GB 内存,日常使用非常流畅,开浏览器、编译小项目都不卡。

下表是我整理的参考配置,你可以根据自己的硬件灵活调整:

用途最小配置推荐配置说明
命令行/轻量使用2 核 / 2GB4 核 / 4GB适合跑脚本、SSH 操作
桌面环境日常使用2 核 / 4GB4 核 / 8GB可以开浏览器、办公软件
开发编译用4 核 / 8GB8 核 / 16GB建议使用 SSD 存储

磁盘方面,Ubuntu 桌面版最小安装后大约占用 8GB,但系统更新、安装软件、缓存日志都会慢慢涨上去,我建议至少分配 32GB,如果你打算在里面装开发环境、放点数据,那就直接给 64GB 或更多。飞牛默认支持磁盘动态分配和镜像回写,空间用多少占多少,不用担心一次性占满。

这里有一个硬件层面的硬性条件:CPU 必须开启虚拟化功能(Intel VT-x 或 AMD-V)。绝大多数 x86 主板默认是开启的,但如果你的机器是从旧 MiniPC 魔改来的,或者刷过其他 BIOS,最好去 BIOS 设置里确认一下。我见过不止一个人在论坛里反馈“虚拟机安装 Ubuntu 蓝屏”,最后发现就是 BIOS 里虚拟化开关没开,白白折腾了半天。

2.3 版本选择:Ubuntu 桌面版还是服务器版

如果你只想远程命令行操作,选 server 版当然更省资源;但标题既然写了“搭建 Linux 桌面环境”,那我们就直接用桌面版(desktop ISO)。原因很简单:desktop 版内置了 GNOME 桌面、桌面管理器、网络管理工具和一些基础办公软件,安装完就能用图形界面,VNC 连上去之后体验完整。

版本号方面我推荐Ubuntu 24.04 LTS,这是长期支持版本,官方会维护五年,软件源里的包也比较全。22.04 也可以用,但 24.04 对桌面性能、Wayland 会话的优化更好,而且飞牛的 virtio 驱动适配做得也顺。你只要去 Ubuntu 官网下载桌面版 ISO 镜像,大概 5GB 左右,下载完之后传到飞轮的“文件”里,建一个 iso 目录统一管理就行。注意不要去下载非官方精简版,纯净原版在虚拟机里兼容性最好。

3. 实操过程:创建虚拟机并安装 Ubuntu 桌面

3.1 第一步:把 Ubuntu ISO 镜像放进飞牛

打开飞牛的 Web 管理界面,在“文件管理”里找到你的存储池目录。我习惯在存储池根目录建一个“iso”文件夹,专门放安装盘镜像。把下载好的 ubuntu-24.04.x-desktop-amd64.iso 上传到这个目录就行。上传速度取决于你的内网,一般千兆局域网也就几十秒的事。

上传完成后记得记一下镜像文件的完整路径,后面创建虚拟机的时要选择这个 ISO。飞牛的文件路径一般是/vol1/1000/iso/xxx.iso这种形式,你在文件管理界面里右键点镜像文件也能看到路径信息,复制出来备用。

3.2 第二步:在飞牛虚拟机管理里创建新虚拟机

在飞牛主界面左侧菜单找到“虚拟机”应用,如果没有显示,去“应用中心”里安装一下,它属于系统内置应用,不是 Docker 容器,安装过程是独立的,非常快。

进入虚拟机页面后点击“创建虚拟机”,按向导填写以下信息:

  • 虚拟机名称:建议写 ubuntu-desktop,方便后续识别。
  • 系统类型:选择 Linux。
  • 系统版本:选择 Ubuntu(如果列表里有 24.04 或 Generic Linux 均可)。
  • CPU 核数:根据前面表格分配,我填了 4。
  • 内存大小:我填了 8192(单位 MB,即 8GB)。
  • 启动 ISO:选择刚才上传的 ubuntu-24.04.x-desktop-amd64.iso。
  • 存储空间:给一个不小于 32GB 的数据盘,接口类型默认即可(一般会自动选 VirtIO)。

这里有一个容易忽略的选项是“网络模式”。飞牛虚拟机的网络有三种模式:桥接模式、NAT 模式、隔离模式。如果你希望 Ubuntu 和局域网里其他设备处于同一网段、可以互相访问,就选桥接模式;如果你只需要 Ubuntu 能上网、能出网下载软件包,NAT 模式也行。我个人建议选桥接模式,这样后续从局域网其他电脑 SSH 连接 Ubuntu 更方便。

3.3 第三步:开机并进入 Ubuntu 安装流程

点创建之后,虚拟机列表里就会出现这台机器。选中它,点击“启动”按钮,然后再点击“VNC 远程连接”,浏览器里会打开一个基于 noVNC 的图形终端,此时你应该能看到 Ubuntu 的引导界面。

引导界面会让你选择“Try or Install Ubuntu”,你直接用默认的第一项回车。接下来是等待内核加载的过程,J4125 这种低功耗 CPU 上可能需要两三分钟,不要以为卡死了,耐心等一下。

进入安装界面后,把语言选成中文简体。这里注意一个小细节:你选的只是“界面语言”,键盘布局保持默认的英语即可,中文键盘布局在后面的输入法配置里再调整会更舒服。接下来 Ubuntu 会自动检测网络连接、磁盘分区模式,如果你是用整块虚拟磁盘安装,直接选“清除整个磁盘并安装 Ubuntu”就行,这是全新磁盘,不会有任何数据风险。后面就是设置用户名、主机名和密码,建议用户名不要用大写字母,以免个别软件兼容问题。

安装过程大概 10 到 20 分钟,视硬盘性能而定。装完后界面会提示重启,你在虚拟机管理界面里把“启动 ISO”选项移除或者改成“无”,然后重启虚拟机,就能进入真正的 Ubuntu 桌面了。

3.4 第四步:进入桌面后的基础设施配置

第一次进入桌面,系统可能还会跑一遍语言更新和软件源初始化,等它安静下来再操作。我个人习惯先做三件事:

第一,确认网络和系统更新:

sudo apt update && sudo apt upgrade -y

这一步把系统包和内核都升到最新,避免后面装软件时遇到依赖冲突。第二,安装一些基础工具,比如 curl、vim、git、net-tools,用命令行执行比图形界面一个个点快得多。第三,把 SSH 服务打开,方便以后不用每次开浏览器 VNC 就能操作:

sudo apt install openssh-server -y sudo systemctl enable --now ssh

配置完这三项之后,这台 Ubuntu 桌面才算是“能正常使用”的状态。接下来要处理的就是本地化和输入法的问题,这个单独放到下一节讲。

4. 桌面环境优化:中文输入法和核心软件配置

4.1 中文输入法:为什么我推荐 fcitx5 而不是默认的 ibus

装完 Ubuntu 桌面后,默认输入法框架是 ibus,自带中文智能拼音。听起来很省事,但实际用下来我发现几个问题:第一,在部分 GTK 应用里输入法切入中文时会卡顿;第二,某些跨平台应用(比如 Electron 家族的 VS Code、Telegram)对 ibus 支持不理想,输入框里能打字但不显示候选词,或者候选框跑到屏幕角落里。相比之下,fcitx5 对 Wayland 会话和无边框窗口的兼容性好很多,候选框定位准确,皮肤也好看,照顾到了我的强迫症。

所以在飞牛虚拟机上,我直接装 fcitx5。执行:

sudo apt install fcitx5 fcitx5-chinese-addons -y

装完之后,打开“设置 - 系统 - 区域与语言“,把输入法框架从 ibus 切换成 fcitx5 需要一个小操作:Ubuntu 24.04 上一般直接用 im-config 命令做切换:

im-config -n fcitx5

然后注销、重新登录桌面。此时屏幕右上角应该会出现一个键盘小图标,右键点击进入“配置”,添加拼音输入法即可。默认键位是 Ctrl+Space 切换中英文,熟悉之后很顺手。

如果你用的是 22.04 LTS,安装方式还多个步骤,但过程本质一样,核心就是把 fcitx5 设为默认输入法框架,然后通过它的配置工具添加拼音。

4.2 安装增强工具:virtio 驱动与剪贴板共享

飞牛的虚拟机板型是基于 QEMU 的,所以磁盘网卡大概率都走了 virtio 虚拟设备。好处是性能高、CPU 开销小,但这也意味着虚拟机里缺少一些和宿主机互动的“增强服务”。如果你需要剪贴板共享(宿主机复制文本,Ubuntu 里直接粘贴),目前最简单的方式是安装一款支持 Remote Desktop Protocol 或 VNC 协议的远程工具来访问桌面,比如我在局域网里用 Remmina 去连 Ubuntu 自带的 Vino 或者 xrdp。

具体来说,如果你更习惯用 Windows 自带的远程桌面(mstsc)来连这台 Ubuntu 桌面,可以安装 xrdp:

sudo apt install xrdp -y sudo systemctl enable --now xrdp

但这里有个大坑,你如果用的是默认 GNOME 桌面,xrdp 连上去之后经常只能看到灰色背景壁纸,没有任务栏,因为 GNOME 桌面在新版 Ubuntu 里默认走 Wayland 会话,而 xrdp 走的是 Xorg,二者冲突。解决方法是给桌面单独创建一个 Xorg 会话,我在实践中最稳妥的做法是另外安装一个轻量桌面环境 Xfce4,然后让 xrdp 默认加载它:

sudo apt install xfce4 xfce4-goodies -y echo "xfce4-session" > ~/.xsession

重启 xrdp 服务后再用远程桌面连接,应该就能看到完整的 Xfce 界面了,流畅度甚至比 GNOME 还高一些。这个方法我强烈推荐给你,毕竟每次都开网页 VNC 总归不够高效,尤其输入命令时还容易误触快捷键。

4.3 安装常用开发工具与多媒体组件

既然搭了 Linux 桌面,你得让它能干活。我按自己的使用场景,把常用软件分成了三类:

类别工具安装方式
开发VS Code、Python、Gitapt 或 snap 安装
办公WPS/LibreOffice、Chrome官网 deb 或 apt
影音VLC、GIMP、音频工具apt 安装

在飞牛虚拟机上,我实测下来 VS Code 用微软官方源安装很顺畅,执行:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ echo "deb [arch=amd64] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list sudo apt update && sudo apt install code -y

如果你不想折腾源,也可以直接去官网下载 .deb 包双击安装,效果一样。Python 在 Ubuntu 24.04 自带 3.12,不需要自己装;但要把 pip 装好:

sudo apt install python3-pip -y

多媒体方面,VLC 一个命令就能装上,看片解码都省心。到这里,桌面环境已经具备日常使用价值了。

5. 常见问题排查与避坑实录

5.1 虚拟机安装 Ubuntu 时蓝屏或启动崩溃

这不是 Windows 专属的毛病,Ubuntu 也可能遇到。排除硬件虚拟化开关没开之外,最常碰到的情况是 ISO 镜像损坏或下载不完整。我建议校验一下镜像的 MD5 值,和官网公布的比对一致再用。另外,飞牛虚拟机创建时如果选了“系统类型 Linux”但没选具体发行版,可能导致 UEFI 启动方式不匹配,这个建议回到虚拟机的编辑选项里,确认启动固件是 UEFI 还是传统 BIOS,Ubuntu 24.04 默认支持 UEFI,飞牛也建议用 UEFI 模式。

如果还是蓝屏,尝试换一个安装镜像源,比如用国内镜像站下载 Ubuntu ISO,速度更快,而且文件完整性也有保障。

5.2 虚拟机内网络无法获取 IP

这是飞牛虚拟机和 Ubuntu 搭配时最高频的问题。我一次在桥接模式下创建完虚拟机,进入 Ubuntu 后发现网卡没有拿到内网 IP,排查步骤是:

  1. 在 Ubuntu 终端里执行ip link,确认网卡是否存在(常见名称是 enp1s0)。
  2. 执行sudo dhclient enp1s0手动获取 IP,如果能拿到说明网卡驱动正常,问题出在网络管理器配置上。
  3. 如果手动获取仍失败,检查飞牛虚拟机网络模式是不是选成了 NAT,NAT 模式下虚拟机的网段通常和宿主机不同,但一般也能上网,只是无法被局域网其他设备直接访问。

最后的解决方案是回到飞牛虚拟机设置,把网络模式改为桥接,并指定桥接到的物理网卡。这里注意飞牛可能有多个网口,你绑定的是哪一个,虚拟机对应也桥到那一个,不要选错。

5.3 桌面卡顿、鼠标延迟明显

如果用的是 J4125、N5105 这类低功耗 CPU 的小主机,跑 GNOME 桌面确实有一定压力,尤其浏览网页或者切换窗口时会出现鼠标漂移的滞后感。我实测后认为,这种情况下最有效的优化不是升级内存,而是把桌面会话从 Wayland 切到 Xorg,因为 Xorg 在 VNC 和 RDP 场景下渲染开销更小,反应更快。在登录界面点击用户名后,右下角有个齿轮图标,选择“Ubuntu on Xorg”登录即可。

如果还想更轻便一点,直接把默认桌面换成 Xfce 或 LXQt,卸载不需要的 GNOME 应用。毕竟这是一台跑在家用 NAS 上的虚拟机,目标是稳定流畅,不是比拼特效。

5.4 磁盘空间与备份的问题

虚拟机磁盘占空间这件事被很多人低估了。虽然飞牛在分配磁盘时是动态占用的,但 Ubuntu 内部删除大文件后,宿主机上的镜像文件并不会自动缩小,时间一长你会发现 NAS 剩余空间越来越小。我的建议是定期清理 Docker 镜像缓存和 Ubuntu 的 apt 缓存,或者干脆在飞牛后台定时进行存储空间的快照回收。如果你重视数据,可以在飞牛里给这台虚拟机开启定期快照功能,出问题直接回滚,比任何手动备份都省心。

6. 扩展玩法探索:让桌面环境持续发挥价值

6.1 从“图形桌面”变成“家庭开发机”

虚拟机装好 Ubuntu 桌面并不代表它只能用来做图形操作。我在实际使用中把这款虚拟机定位成了“家庭开发机”,通过桥接网络,它拥有一张局域网内的独立 IP,我可以在办公室用 SSH 连进去跑测试脚本,也可以在卧室直接用浏览器 VNC 打开整个桌面浏览网页。相比树莓派,它的性能更强;相比纯云服务器,它没有月租成本,还拥有一块几十 GB 甚至更大的本地磁盘。

如果有需要,你把它当作一个 Linux 学习练习场也不错。随便折腾,装软件、改配置、搭服务,挂了就从快照恢复,学习成本比实体电脑低得多。

6.2 结合飞牛应用中心:Docker 与虚拟机共存

飞牛应用中心已经有不少 Docker 应用,比如 Gitea、青龙面板等,其实这些服务和这台 Ubuntu 虚拟机能形成很好的互补。虚拟机里跑重量级 IDE、做编译、跑图形程序;Docker 容器里跑轻量级应用、自动化脚本。两者共享一台 NAS 的硬件资源,各司其职。我在虚拟机里装了 VS Code 并开放了 SSH,开发完的代码直接 git push 到飞牛上跑的 Gitea 仓库,整个过程都在内网,速度飞快。

6.3 待继续打磨的方向

这套方案里,有一些细节我还在不断优化。比如显示器分辨率的问题,VNC 默认分辨率只有 1024x768,可以在 Ubuntu 显示设置里调高,但每次 VNC 重连后偶尔会重置,我目前是通过 xrandr 脚本固定分辨率来解决的。又比如音频输出,虚拟机里的声音从飞牛宿主机的 HDMI 口出来偶尔会断续,经我测试买一个 USB 声卡插在宿主机上,再透传给虚拟机,音质就非常稳定了。

这些打磨方向弹性很大,取决于你拿这台 Linux 桌面做什么。如果只是日常浏览、写写文档,默认配置已经够用;如果把它当主力工作台,建议你花一点点时间把远程桌面和分辨率脚本配置好,体验会再上一个台阶。我自己最常用的是那套“VNC 观感 + SSH 操作”的组合,图形界面用于视觉确认,命令行用于效率操作,在飞牛虚拟机上跑了一整个季度,稳定性非常让我满意。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 8:19:36

基于WebSocket的跨平台私人远程桌面:从采集到渲染的完整实现

简介:这是一套面向高校计算机相关专业毕业设计的完整项目源码,主题为基于WebSocket的跨平台私人远程桌面工具,适合正在准备毕设或希望深入理解网络协议与远程控制原理的学生与开发者。项目采用Java AWT、SpringBoot与WebSocket等技术实现&…

作者头像 李华
网站建设 2026/10/9 8:19:25

Windows共享文件夹旧账号登录问题:凭据缓存与SMB会话清理指南

你有没有遇到过这种情况:一台Windows电脑,之前用A账号连过公司NAS或者某台服务器的共享文件夹,后来人家改了密码,或者你想改用另一个有权限的账号登录,结果双击共享文件夹还是直接打开,根本不给你输入新账号…

作者头像 李华
网站建设 2026/10/9 8:18:29

H3C与华为交换机配置命令对照:从VLAN到OSPF的跨厂商实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/9 8:18:21

从API调试员到开发者:重构AI应用开发工作流

开工前先说两句。我写这篇文章,讲的是我怎么把日常里那些“验证API能不能通、参数对不对、返回报错怎么调”的活儿,整合成一套真正让我从“API调试员”变回“开发者”的AI开发工作流。文章里会涉及API调试、模型调度、结构化输出、上下文管理、缓存重试这…

作者头像 李华
网站建设 2026/10/9 8:18:15

JSP+Servlet外卖订餐系统源码解析:架构设计、数据库与部署避坑指南

简介:基于JSPServlet实现的外卖订餐系统实战项目,完整涵盖会员、骑手、商家、管理员四类角色,采用MVC模式与MySQL存储,适合需要课程设计、毕业设计案例或系统学习Java Web开发的读者。压缩包共93.63MB,内含可导入Eclip…

作者头像 李华
网站建设 2026/10/9 8:17:15

OpenClaw本地智能体部署指南:从零接入飞书与本地大模型

1. 从“本地智能体”说起:OpenClaw到底是干什么的 我在本地折腾AI智能体也不是一天两天了,之前玩过各种所谓“私人助理”项目,大多数都是装完之后新鲜半小时,然后就扔在那吃灰。但OpenClaw不一样,它是那种你愿意一直留…

作者头像 李华