☰
飞牛NAS上基于QEMU/KVM搭建Ubuntu桌面虚拟机全指南
2026/10/9 3:12:24 网站建设 项目流程

1. 项目思路与需求拆解

1.1 为什么要在飞牛 NAS 里跑一个 Linux 桌面

先说说我为什么要干这件事。我手上这台飞牛 NAS(fnOS)平时主要干两件事:一是存文件、跑 Docker 容器,二是挂 PT、做家庭影音中心。但时间一长就发现一个问题——NAS 上跑的大多数服务都是无界面的后台程序,想调试脚本、写个 Python 爬虫、或者临时开个浏览器处理点东西,都得另开一台电脑。那如果我出差在外,手头只有笔记本,又不想把 NAS 里的数据拷来拷去,能不能直接在 NAS 上开一个随时能访问的 Linux 桌面环境?

答案就是虚拟机。飞牛自带的虚拟机功能基于 QEMU/KVM 实现,可以直接在 NAS 的 Web 管理界面里创建、启动、关机和管理虚拟机,不需要额外装 VMware 或者 VirtualBox。而 Ubuntu 作为最流行的桌面发行版之一,恰好是这种用法的绝佳选择。

这篇博文就是完整的实操记录,从下载镜像到创建虚拟机、从安装系统到配置中文输入法和桌面优化,再到显卡驱动和视频播放这些细节点,我都把步骤和踩坑过程写出来了。适合两类人参考:一个是飞牛用户想扩展 NAS 玩法、把 NAS 变成一台常驻 Linux 机器的,另一个是想在虚拟机里体验 Ubuntu 桌面、但不想搞双重系统或者不想买新电脑的。

需要提前说明的是,我这里用的是飞牛 fnOS 当前较新的版本,虚拟机管理界面可能在你的版本里略有差异,但核心步骤和逻辑是通用的。

1.2 方案选型:虚拟机、Docker 还是物理机

在动手之前,我得先对比一下在 NAS 上跑 Linux 桌面的几种路径,因为很多人会问:为什么不直接 Docker 装一个 ubuntu 镜像?

Docker 确实可以跑 Ubuntu,但 Docker 容器默认没有桌面环境、没有完整的系统服务,你需要在容器里自己装 X server、桌面面板、VNC 服务,而且容器重启后配置容易丢、设备直通困难,显卡加速和音频基本别想。简单类比一下:Docker 像是一个“标准间”,只给你一张床和一个插座,而虚拟机像是一整套“精装公寓”,从地基到水电都是你自己的,想怎么折腾都行。

物理机方案呢?比如把 Ubuntu 直接装在一块硬盘上、插到 NAS 的 SATA 口。这样做性能最强,但问题是飞牛本身需要占用系统盘,而且你无法在 Web 界面里方便地开关系统、无法做快照回滚,万一系统崩了还得拆机接显示器。对大多数家用场景来说,虚拟机是收益和成本最平衡的选项。

选型层面我最终确定:飞牛虚拟化 + Ubuntu 24.04 LTS + QXL 显示驱动 + VNC 远程桌面。理由有三点:

  1. 飞牛的虚拟机管理界面是图形化的,不用敲 qemu 命令行,对新手友好。
  2. Ubuntu 24.04 LTS 是长期支持版本,踩坑频率明显低于 24.10 这类短期版本。
  3. VNC 内嵌在飞牛的虚拟机控制台里,只要你浏览器能访问飞牛后台,就能打开 Ubuntu 桌面,无需额外装客户端。

如果你只是想要一个命令行 Linux 做开发调试,那其实不用装桌面,选“最小安装”就行,省资源、跑得快。但既然标题说了“搭建 Linux 桌面环境”,那我们的重点就是完整桌面体验。

2. 搭建前的准备工作

2.1 镜像下载与校验

Ubuntu 的官方镜像站是 ubuntu.com/download,但国内访问速度时好时坏,我推荐两个镜像源:清华 TUNA 镜像(mirrors.tuna.tsinghua.edu.cn)和阿里云镜像(mirrors.aliyun.com)。注意选的是 ISO 文件而不是 torrent,虽然两者都行,但 ISO 直链对浏览器下载更友好。

文件名形如ubuntu-24.04.1-desktop-amd64.iso,这个带 desktop 的才是桌面版,server 版没有图形界面。大小通常在 5GB 左右,下载完一定要校验 SHA256 哈希值,避免镜像文件损坏导致安装中途报错。下载完把 ISO 传到飞牛的存储池里,建议单独建一个ISO文件夹,方便管理。

校验哈希的方法:在 Ubuntu/Linux 下用sha256sum命令,Windows 下用certutil -hashfile,macOS 下用shasum -a 256。对比结果和官网公布的值是否一致。

2.2 飞牛虚拟机的存储与内存规划

飞牛虚拟机需要为每个实例分配虚拟磁盘、CPU 和内存。这里是最考验取舍的地方,因为 NAS 的硬件资源是有限的。

我自己这台 NAS 是 J4125 处理器、16GB 内存、4 块硬盘组 RAID5 存储池。J4125 是四核四线程的低功耗处理器,性能相当于入门级桌面 CPU,跑 Linux 桌面够用,但你别指望它能流畅 4K 视频剪辑。如果你的 NAS 是 J3160、N5095 这类,建议只分配 2 核和 4GB 内存给虚拟机,否则宿主机的 Docker 服务可能被拖垮。

资源分配给一个基本参考值:

场景vCPU内存磁盘
轻量桌面 + 浏览器 + 文档2 核4 GB32 GB
桌面 + 代码编译 + 轻量开发4 核8 GB64 GB
桌面 + 本地 AI 推理(极小规模)4 核12 GB128 GB

我实际分配的是 4 核、8GB 内存、64GB 虚拟磁盘。分配虚拟磁盘时有个小技巧:飞牛默认会创建“精简置备”的虚拟磁盘,也就是说只有在虚拟机真正写入数据时才会占用 NAS 的物理空间,所以即使你选了 64GB,实际可能只占 7GB 左右,不用担心一开始就吃掉大量存储。

但注意“精简置备”有个坑:虚拟磁盘性能在大量随机读写时会有一定下降,因为每次分配新块都要走文件系统层。所以对性能敏感的场景,比如数据库或编译目录,最好在虚拟机里把数据放到独立的第二块虚拟磁盘上,用“厚置备”模式。桌面系统本身对这个不敏感,不用太纠结。

2.3 创建虚拟机的关键参数设置

打开飞牛后台,在“虚拟机”模块点击“新建虚拟机”。填名字,比如ubuntu-desktop,引导方式选择 UEFI。这里有个容易忽略的点:现在 Ubuntu 桌面版默认启用了 Secure Boot,如果引导方式选的是传统 BIOS(Legacy),安装后启动会卡在 GRUB 界面,表现为黑屏只有一个光标闪烁。所以选 UEFI 是省事的选择。

虚拟化引擎至少勾选“硬件虚拟化”和“KVM”,这是性能的关键。如果没有勾选 KVM,虚拟机的 CPU 性能会惨不忍睹,装系统时每一步都像幻灯片。你可以这样理解:KVM 是让虚拟机直接使用物理 CPU 的指令集,而不是模拟 CPU 逐条解释指令,前者快很多。

图形模型建议选择 QXL,因为它是 QEMU 自带的虚拟显卡,支持最大 4K 分辨率、支持双屏拼接,而且不像 VGA 模式那样只有 800x600 的分辨率。等系统装好后界面粗糙,多半是忘了安装 QXL 驱动,后面会细说。

启动顺序和声卡保持默认即可,声卡用 ich9-intel-hda,笔记本扬声器没有独立声卡也不用担心,因为默认走网络 VNC 音频是静音的,想要出声音需要在 Ubuntu 里配置 audio over VNC,这个属于进阶操作,我这次不讲。

3. 安装 Ubuntu 桌面系统的完整过程

3.1 从虚拟光驱启动并进入安装界面

在飞牛虚拟机列表里启动刚才创建的虚拟机,然后点击“控制台”按钮,浏览器会弹出一个 VNC 窗口,这就是你操作 Ubuntu 的窗口。首次启动会卡在“Booting from Hard Disk...”或者直接黑屏,因为虚拟机的启动顺序默认是先硬盘后光驱,而硬盘是空的。

解决方法有两种:一是创建虚拟机时把启动顺序调成“光驱优先”,二是在虚拟机的 BIOS 配置里临时进入启动菜单(通常是按 F12 或 Esc)。飞牛的虚拟机设置里直接有“启动顺序”选项,把CD-ROM拖到最上面保存,然后重启虚拟机,就能看到 Ubuntu 的 GRUB 启动菜单了。

Ubuntu 启动菜单出来后,默认选“Try or Install Ubuntu”回车。这里有一个我踩过的坑:如果你用上下方向键选择“Ubuntu (safe graphics)”,虽然对老旧显卡兼容更好,但安装完成后的桌面效果会缺少硬件加速之外的优化。所以没有特殊问题的话,用默认第一项就行。

进入 Ubuntu 桌面后,你会看到“Welcome”窗口。左侧可以选择语言,右侧有“Try Ubuntu”和“Install Ubuntu”两个按钮。直接点击“Install Ubuntu”。

3.2 分区设置:手动分区其实很简单

Ubuntu 的安装向导会问安装类型,默认是“清除整个磁盘并安装 Ubuntu”,对虚拟磁盘直接选这个没问题。但如果你想把 64GB 虚拟磁盘分成更科学的结构,可以选择“手动分区”。

我这里强烈建议手动分区,理由不是性能,而是灵活性。比如你把/home单独分区,以后想重装系统时,个人文件和配置可以保留在/home分区里,不会因为系统盘格式化而丢失。

手动分区可以这样规划:

挂载点大小文件系统类型
/boot/efi512 MBFAT32必须,用于 UEFI 启动
/40 GBext4根目录,系统和安装的软件都在这里
/home剩余空间ext4个人数据,建议尽量大

给一个小建议:交换空间(swap)在虚拟机场景下可以不加,或者只加 2GB。因为如果你在图形界面里发现自己内存不够用了,可以直接在飞牛里把虚拟机的内存调大,而不需要像物理机那样有限制。这种情况下的 swap 文件反而会浪费磁盘空间。

分区完成后,安装向导会提示“你确定要将这些更改写入磁盘吗”,检查一遍挂载点和大小,确认无误后点“继续”。

3.3 安装过程中的用户名与软件源选择

安装向导会让你设置用户名和密码。如果你打算长期使用这台 Ubuntu,建议用户名用小写英文,密码设成强密码但自己记得住,避免大小写折腾。这个用户名会在你的家目录里创建/home/用户名目录,很多配置文件都跟家目录挂钩,后期改用户名比较麻烦,最好一次想好。

接下来安装向导会问“你需要在安装时下载更新吗”。在虚拟机的网络环境里,这一步看情况——如果你的网络快,可以勾选“安装时下载更新”;如果网速一般或者还想再装个输入法再配置,可以先不勾选,安装完成后手动执行apt update。另外“安装第三方软件”那一步建议勾选,因为 Ubuntu 默认没包含 MP3 解码器、Flash 等非开源软件,不勾的话后期播放视频遇到 mkv 格式会各种缺解码器。

关键的一步:安装向导里的“软件源”选择。如果你使用默认的 Ubuntu 官方源,在中国网络环境下通常很慢、经常超时。我建议在安装完成后立即切换为阿里云镜像源,步骤如下:

sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update

如果安装向导本身允许你提前配置软件源,那就直接选“China”区域对应的镜像源。注意 24.04 采用新的ubuntu.sources文件格式,原来的sources.list已废弃,所以要修改的文件名不一样,后面在常见问题里我再具体说明。

3.4 安装完成后的首次启动与网络检查

安装完成后,安装向导会提示“立即重启”或“继续测试”,重启后虚拟机会自动从硬盘引导启动。如果重启后黑屏或者卡在 GRUB,多按几次 ESC 键试试进入 GRUB 菜单,选择第一项正常启动。

进入桌面后,先做三件基础配置:

  1. 打开终端(Ctrl + Alt + T),运行ip a查看 IP 地址。飞牛虚拟机默认走 NAT 网络,所以 Ubuntu 会获得一个 192.168.122.x 或类似网段的地址,这是飞牛虚拟网桥分配的。

  2. 运行ping baidu.com检查网络连通性。如果 ping 不通,先看飞牛虚拟机的网络模式是不是选的“NAT”,而不是“桥接”。NAT 模式是虚拟机通过飞牛宿主机的 IP 上网,桥接模式是虚拟机直接和局域网在同一网段、拥有独立 IP。

  3. 运行df -h查看磁盘挂载情况,确认/和/home的容量和预期一致。

到这里,Ubuntu 系统本身已经跑起来了,但这只是“能用”的阶段,离“好用”还差几步。接下来我们进入桌面环境的细节配置,这才是博文最值得看的干货部分。

4. 桌面环境优化与实用配置

4.1 中文输入法配置的正确姿势

中文输入法是很多新用户的痛点,尤其在 Ubuntu 里,默认只有 IBus 框架,而 IBus 自带的智能拼音输入法比较“素”,词库弱、联想差。我个人的经验是直接装 Fcitx5 + 中州韵(Rime),或者 Fcitx5 + 搜狗输入法 Linux 版。

我推荐 Fcitx5 + 搜狗输入法,因为词库和云输入更符合国人习惯。安装方法:

sudo apt install fcitx5 fcitx5-config-qt fcitx5-frontend-gtk3 fcitx5-frontend-qt5

然后去搜狗官方下载 .deb 安装包(支持 amd64),用sudo dpkg -i sogoupinyin_xxx.deb安装,如果报依赖错误,执行sudo apt -f install修复。

装完之后,最关键的一步是切换输入法框架。Ubuntu 默认的输入法环境变量是 IBus,你需要把系统默认输入法改成 Fcitx5。编辑或创建文件~/.xprofile:

export XMODIFIERS=@im=fcitx5 export GTK_IM_MODULE=fcitx5 export QT_IM_MODULE=fcitx5

保存后重启虚拟机,在设置里找到“区域与语言”,添加“汉语(中国)”,输入源选择“Fcitx5”对应的拼音。此时按 Ctrl + Space 就能切换中英文输入了。

需要特别提醒的是:如果你不设置上述环境变量,Fcitx5 在 GTK 程序里根本不会被调用,你会出现“明明装了输入法但打不出中文”的诡异现象。这个问题网上有大把人卡住,就是环境变量没配对。

4.2 显卡驱动与显示分辨率

飞牛虚拟机的 QXL 显卡在 Ubuntu 24.04 里默认驱动能识别,但分辨率默认可能只有 1024x768,这显然不适合桌面使用。如果分辨率很高但整个桌面看起来缩放不正常,多半是显示比例和虚拟屏幕尺寸不匹配,飞牛控制台可以先点“自适应窗口”按钮。

如果你发现分辨率选项里没有 1920x1080 或更高,很可能是 QXL 驱动没装好。检查方法:

lsmod | grep qxl

如果有输出说明驱动已加载,没有的话执行:

sudo apt install xserver-xorg-video-qxl

装了驱动以后,在“设置 - 显示器”里应该能看到更多分辨率选项。还有一个技巧:如果飞牛虚拟机控制台的窗口大小和分辨率不匹配,可以在 Ubuntu 设置里把分辨率调到和窗口一致的选项,或者用控制台的“缩放”功能。

这里有朋友可能会问“要不要装 NVIDIA 驱动”或者“要不要直通显卡”。对飞牛 NAS 这种家用场景,我明确回答:不用。QXL 是虚拟显卡,性能和物理显卡当然没法比,但它应付桌面浏览、终端操作、看视频绰绰有余。显卡直通(GPU passthrough)通常需要主板支持 IOMMU,折腾成本极高,而且 J4125 这类 CPU 的核显直通还会导致 NAS 宿主机的显示输出异常。真的需要硬件加速的场景,应该在物理机上跑 Linux,而不是 NAS 虚拟机里硬凑。

4.3 播放视频与音频问题

Linux 桌面下播放视频,最常遇到的问题就是“有声音无图像”或“花屏”,或者“有图像无声”。先说结论:在 QXL 虚拟显卡下,软件解码是王道。也就是在播放器里关闭硬解,改用 CPU 解码。

Ubuntu 自带的浏览器(Firefox)播放在线视频时,如果出现绿屏或花屏,可以先强制 Firefox 使用软件渲染:

在 about:config 里搜索 gfx.webrender.software,设置为 true

系统本地视频播放,推荐安装 VLC:

sudo apt install vlc

VLC 在“工具 - 偏好设置 - 输入/编解码器”里,把“硬件加速解码”改成“软件解码”。J4125 的软解能力强悍,1080P 视频毫无压力,4K 虽然能播但 CPU 占用会比较高,不建议作为主力播放器。

音频方面,虚拟机的声卡默认输出到 VNC,但 VNC 音频在飞牛的网页控制台里默认不转发,所以你大概率会听到视频“静音”。要解决这个问题有两条路:一是用 PulseAudio 的 TCP 转发,把音频通过网络传回飞牛宿主机播放;二是更实用——直接在飞牛宿主机里用 Docker 跑一个 DLNA 媒体服务器,比如 Jellyfin,虚拟机里的 Ubuntu 只负责管理和下载,实际播放走局域网内的电视或手机。我实际操作中发现后者利用率高得多,Linux 桌面播放视频更多是临时看个片、剪个短视频,不必追求影院效果。

跳过音频这块有个小细节:如果你确实想在 Ubuntu 虚拟机里出声,可以在飞牛虚拟机的设置里给虚拟机添加一块 USB 音频设备,但宿主机的 USB 声卡必须通过 USB 直通机制才能到达虚拟机,配置稍复杂,如果不是刚需,建议跳过。

4.4 常用开发环境与必要软件

既然是在 NAS 上跑 Linux 桌面,通常目的就是做开发或者挂机跑脚本,所以必要的开发环境得配好。

Python 是必须的:

sudo apt install python3 python3-pip python3-venv

注意 Ubuntu 24.04 默认的 Python 是 3.12,直接用pip装包时如果遇到“externally-managed-environment”的报错,说明系统有 PEP 668 保护机制,你需要在虚拟环境里装包:

python3 -m venv myenv source myenv/bin/activate pip install requests

Node.js 可以用 apt 装,但版本可能偏老,我建议用 nvm 安装最新 LTS:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash nvm install --lts

GCC 编译器,这是初学者最容易踩坑的点。标题热搜里有人问“ubuntu 安装 gcc 失败”,通常是没装 build-essential 依赖,只单独执行apt install gcc装的是最快的 CPU 编译器裸体,缺少 make、libc-dev 等配套包,编译任何东西都会报错。正确做法是:

sudo apt install build-essential

如果是国产平台比如龙芯、ARM 板子,还需要额外安装对应的交叉编译工具链,这里先按 x86_64 讲。

文本编辑器,我推荐 VS Code,从微软官网下载 .deb 包,安装后配合 Fcitx5 输入法写代码舒服得很。VS Code 设置在 QXL 虚拟显卡下,可以启动参数加--disable-gpu,省得界面渲染卡顿。

5. 常见问题与排查技巧实录

5.1 虚拟机启动蓝屏或黑屏

“虚拟机安装 Linux 蓝屏”这个说法其实不准确,因为 Windows 才会蓝屏,Linux 崩溃一般是黑屏、花屏或者卡在启动加载界面。在飞牛里遇到 Ubuntu 虚拟机黑屏,90% 的情况是引导方式错误。

我在 2.3 节说过,Ubuntu 桌面版需要 UEFI 引导。如果你创建虚拟机时选的“传统 BIOS”,那么启动时会卡在 GRUB 之前。解决方法:删除虚拟机(保留磁盘),用 UEFI 重建一台,再把旧虚拟磁盘挂载为新数据盘;或者更简单——新创建一个 UEFI 虚拟机,重新安装系统,反正家目录数据可以通过挂载旧磁盘找回。

另一个黑屏原因是 VNC 窗口没刷新。飞牛控制台偶尔会卡在“Waiting for display”状态,这时候先在飞牛虚拟机列表里确认虚拟机的“运行状态”是否正常,然后刷新浏览器页面、重新打开控制台。如果还是黑屏,检查虚拟机的“显示协议”是否设置成了 VNC,有些版本默认是 Spice,需要浏览器插件支持,普通浏览器打不开。

5.2 安装软件时 apt 报错

Ubuntu 里 apt 报错最经典的三种:

报错特征原因解决方案
Could not resolve archive.ubuntu.comDNS 解析失败或网络不通检查虚拟网卡配置,ping 8.8.8.8测试
Package has unmet dependencies依赖冲突sudo apt --fix-broken install
Temporary failure resolvingDNS 服务器不稳定在 Ubuntu 设置里手动加 223.5.5.5 和 114.114.114.114

关于软件源,必须强调 Ubuntu 24.04 的源文件路径已经从/etc/apt/sources.list改成了/etc/apt/sources.list.d/ubuntu.sources。如果你照着网上老教程去改sources.list,改完实际上根本没生效。正确做法是直接编辑/etc/apt/sources.list.d/ubuntu.sources文件,把其中的http://archive.ubuntu.com/ubuntu/替换为http://mirrors.aliyun.com/。

5.3 虚拟机性能低下、卡顿明显

如果你装完 Ubuntu 桌面后感觉鼠标拖动窗口都卡,先别急着骂飞牛,按下面顺序排查:

  1. 在飞牛虚拟机设置里确认“CPU”分配大于等于 2 核、“内存”大于等于 4GB。如果宿主机本身资源紧张,调大虚拟机内存是立竿见影的办法。
  2. 确认虚拟化引擎勾选了 KVM。可以在 Ubuntu 里执行systemd-detect-virt,如果输出是kvm,说明 KVM 生效;如果输出是qemu,说明走的纯软件模拟,性能会差好几倍。
  3. 桌面特效设置。在 Ubuntu 的“设置 - 无障碍”里把“减少动画”打开,或者在“设置 - 显示”里把“窗口动画”关闭。QXL 下动画渲染费 CPU,关掉后流畅度提升一大截。

还有一个我被问到很多次的场景:J3160 或者 J4105 这种低功耗平台跑 Ubuntu 桌面,内存 4GB 到底行不行?我的实测结论是“能跑,但浏览器开多了会卡”。低配平台的正确用法是:安装 Ubuntu 时选择“最小安装”,不装 LibreOffice 和游戏,只用 Firefox + VS Code + 终端,这样 4GB 内存下能维持一个能用的桌面体验。

5.4 虚拟机磁盘空间不够

64GB 的虚拟磁盘,如果又装开发环境又存下载文件,很快会占满。怎么延长它的寿命?我的经验:

  1. 把 Docker 的镜像目录和数据目录放到 NAS 物理存储上,通过飞牛里的“共享文件夹”挂载到虚拟机里,Linux 用 NFS 或者 Samba 挂载都行。
sudo mkdir /mnt/nas sudo mount -t cifs //192.168.1.100/downloads /mnt/nas -o username=yourname,password=yourpass
  1. 定期清理 apt 缓存:
sudo apt autoremove sudo apt autoclean
  1. 关注日志文件增长,因为 Ubuntu 的 journal 日志默认不限制大小,可以设置只保留最近 7 天的日志:
sudo journalctl --vacuum-time=7d

5.5 宿主机与虚拟机的文件互传

在 NAS 上跑 Linux 桌面的价值很大程度上在于和宿主机共享数据。飞牛本身有“共享文件夹”,Ubuntu 如果用的是 NAT 网络,访问的是宿主机虚拟网段的 IP,而不是 NAS 的局域网 IP。所以 NFS 挂载时需要小心 IP 地址:

  • 飞牛宿主机 IP 通常是你局域网里的固定 IP,比如 192.168.1.100;
  • 在 Ubuntu 里挂载时,第一跳网关就是宿主机地址,可以用ip route查看默认网关。

如果是桥接网络,Ubuntu 的 IP 和飞牛在同一网段,直接访问共享路径即可。这里有个小坑:飞牛的共享文件夹默认只有 smb 协议,需要在“共享文件夹”设置里同时开启 NFS 服务,否则 Linux 无法直接用mount -t nfs,只能用 cifs(SMB)协议。

6. 进阶玩法与扩展思路

6.1 把 Ubuntu 虚拟机变成开发代理和下载器

既然 Ubuntu 桌面跑起来了,完全可以把它当成一台常驻的“个人云电脑”。远程访问有两种方式:

一是飞牛控制台自带 VNC,但 VNC 在浏览器里体验一般,而且不支持声音,只适合管理和临时操作。二是安装 SSH 服务,在 Ubuntu 桌面里启用远程桌面协议,用 Windows 自带的“远程桌面连接”或 macOS 的 Microsoft Remote Desktop 客户端连接。飞牛的 Ubuntu 虚拟机如果用的是桥接网络,直接输 IP 就能远程;如果是 NAT 网络,需要配端口转发。

我实际用的就是“SSH + VS Code Remote”组合。SSH 到 Ubuntu 虚拟机以后,用 VS Code 的 Remote-SSH 插件直接编辑远程文件、运行终端,这种方式比 VNC 桌面流畅得多,也不需要图形资源。这也是我推荐在上面装 VS Code 的原因——变量不只在于本地编辑,还给了你一条轻量化的远程通道。

6.2 挂载 NAS 存储到虚拟机的桌面目录

在 Ubuntu 里把飞牛 NAS 的存储挂载到桌面,方便直接读写。我采用的方案是 Samba 挂载:

sudo mkdir -p /mnt/nas sudo chown $USER:$USER /mnt/nas # 编辑 /etc/fstab 实现开机自动挂载 //192.168.1.100/media /mnt/nas cifs username=你的飞牛账号,password=你的密码,uid=1000,gid=1000,iocharset=utf8 0 0

注意uid和gid要设置成你 Ubuntu 用户的 ID(查看方法:id -u和id -g),否则会出现在 Ubuntu 里能挂载但文件所有者是 root、无法写入的尴尬情况。

6.3 快照功能与回滚

飞牛虚拟机面板里支持创建快照,这是比物理机方案好太多的地方。系统装好、配置全部调通的那一瞬间,请务必立刻拍一个快照。之后如果安装软件把系统搞挂、误删文件、病毒发作,都能一键回滚到健康状态。

我的经验是:每完成一个重要配置(比如输入法配好、开发环境装好)就拍一个快照,日常使用每周拍一个,但别保留太多快照,每个快照会占用 NAS 的存储空间。日常维护中,如果你确认某段时间内改动都满意,就删掉老快照,只留最近两三个,保持“可用状态可回滚”即可。

6.4 部署 Docker 容器管理与青龙面板

飞牛 NAS 经常被用来跑青龙面板(自动任务平台)这类工具。你可以直接在 Ubuntu 虚拟机里安装 Docker,跑青龙面板、Frp、Home Assistant 等容器,这样容器和桌面环境混在一台机器上,管理起来比宿主机直接跑容器更清爽。因为 Ubuntu 虚拟机相当于你的“开发沙箱”,系统搞坏了随时回滚,不会影响飞牛宿主机的稳定性。

在 Ubuntu 里装 Docker:

curl -fsSL https://get.docker.com | bash sudo usermod -aG docker $USER

装完以后可以跑青龙面板:

docker run -d \ --name qinglong \ --restart unless-stopped \ -p 5700:5700 \ -v /opt/ql/config:/ql/config \ -v /opt/ql/log:/ql/log \ whyour/qinglong:latest

注意:飞牛宿主机本身也支持 Docker,如果你需要青龙面板挂机任务,宿主机直接跑更省资源。虚拟机的意义在于开发和调试场景下的隔离性,两类用途要区分开。

7. 写在最后的实操体会

这套方案我用了大概四五个月,从最初只是想在 NAS 上开个 Linux 终端,到后来在上面跑 Jellyfin 定时转码脚本、写 Python 爬虫、管理下载任务,再到偶尔在浏览器里刷个网页、看个视频。坦白讲,飞牛虚拟机 + Ubuntu 桌面的体验上限不是看 NAS 的配置,而是看你的使用预期:它永远无法替代主力台式机的性能,但作为一台 7x24 小时开机、随时能从浏览器进入的常驻 Linux 机器,实用性远超我的预期。

过程中最有价值的经验,一是把系统配置的每一步都记录下来、及时拍快照,二是不要试图在虚拟机里干所有事,桌面和宿主机的分工要明确:宿主负责存储、容器、媒体播放,虚拟机负责开发、脚本、测试、下载管理。如果你只是想要一个随时能用的 Linux 环境,不用折腾太多图形特效,直接照我上面的配置跑起来就够用了。

最后再分享一个小技巧:如果你发现 Ubuntu 桌面启动速度越来越慢,检查一下开机自启服务,把不需要的服务全部禁用,然后点击飞牛虚拟机的“强制重启”选项做一次干净的重启。很多时候慢不是硬件不行,而是积累的临时文件和自启程序拖了后腿。我的这台 J4125 在清理之后,从控制台打开到进入 Ubuntu 桌面大概只需 30 秒,这个速度对于 NAS 虚拟机来说已经完全可用了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询