外观
小工具合集
这一篇把 15 个功能单一的小插件放在一起,每个一小节:包名、来源、菜单、做什么、要注意什么。用得上哪个,直接跳到那一节。版本号是 2026-10-22 软件源里的版本,以你 系统 → 插件(System → Plugins)里显示的为准。
| 插件 | 来源 | 一句话用途 | 版本 |
|---|---|---|---|
apt | 官方 | 在界面里添加额外的 APT 软件源 | 8.0.2-1 |
wbprefs | 官方 | 换登录页等页面的壁纸 | 8.0.5-1 |
hosts | 官方 | 往 /etc/hosts 追加自己的条目 | 8.0.1-1 |
envvars | 官方 | 在界面里增删改 OMV 的环境变量 | 8.0.1-1 |
snmp | 官方 | SNMP 代理,给监控系统读数据 | 8.0.1-1 |
tftp | 官方 | TFTP 服务,给网络启动和设备配置用 | 8.0.2-1 |
diskstats | 官方 | 磁盘 I/O 性能图表 | 8.0.2-1 |
wetty | 官方 | 浏览器里的 SSH 终端(Podman 容器) | 8.1.0-2 |
apttool | omv-extras | 在界面里搜索、安装、卸载、保持软件包 | 8.0 |
anacron | omv-extras | 给不是 24 小时开机的机器用的计划任务 | 8.0 |
locate | omv-extras | 按文件名搜索整个文件系统 | 8.0 |
resetperms | omv-extras | 递归重置共享文件夹权限、清除 ACL,列出谁在引用共享文件夹 | 8.0.2 |
iperf3 | omv-extras | iperf3 服务端和定时测速 | 8.0 |
cterm | omv-extras | 浏览器里进入容器的终端 | 8.0.5 |
imagecheck | omv-extras | 只检查、不更新容器镜像 | 8.1.2 |
官方插件直接在 系统 → 插件 里装;omv-extras 的要先安装 omv-extras。界面里的卸载会清除插件的设置并自动移除不再需要的依赖,卸载前先读 安装、更新与卸载插件。
几个小工具的破坏力比看上去大
- 重置权限(resetperms)会递归地把整个共享文件夹的属主改成
root:users、重写权限位,还能清除 ACL,改错目录会让系统或容器无法工作。Apt 工具能卸载软件包,误卸会破坏 OMV。 - TFTP、SNMP、iPerf3、WeTTY、CTerm 会开放端口或提供登录入口,其中 TFTP 完全没有认证,SNMP 默认的团体字符串是
public。只在可信的局域网里启用,用完就关。 - 环境变量的 应用 会重新部署所有模块并重启 OMV 的后台服务,不是黄色提示条上的那个应用。
- 影响范围:见各节。前置条件:改动前有系统盘和数据的独立备份。怎么回退:各节写了对应的撤销办法;权限和软件包的改动没有一键撤销,只能靠备份或重装。
官方插件
apt:额外软件源
- 包名与来源:
openmediavault-apt,官方。 - 菜单:
系统 → 更新管理 → 设置 → 其它软件(System → Update Management → Settings → Other Software)。 - 做什么:在界面里管理额外的 APT 软件源,用的是 deb822 格式。字段有 已启动、类型(Types,如
deb)、URIs、套件(Suites)、组件(Components)、签名者(Signed-By,上传或粘贴.asc公钥文件)和标签。 - 怎么生效:每个条目被写成
/etc/apt/sources.list.d/openmediavault-custom-<随机编号>.sources,每次部署先清掉这个前缀的文件再按数据库重写,所以不要自己建同名前缀的文件。应用后到系统 → 更新管理 → 更新(System → Update Management → Updates)检测更新,新源里的软件才会出现。 - 注意:只加你信任的源,并且填 签名者。官方文档明确提醒:不要从 Debian 的 Backports、Testing、Experimental 安装软件,OMV 和它所基于的 Debian 版本严格绑定;非要用,要做好 pin。能用容器就用容器。
wbprefs:登录页壁纸
- 包名与来源:
openmediavault-wbprefs,官方。 - 菜单:
系统 → 工作台 → 墙纸(System → Workbench → Wallpaper)。 - 做什么:给登录页、认证页(Authentication,认证验证的页面)、关机页、待机页换壁纸。填 页面(Page)和 URL,URL 以
http://、https://或file://开头,图片必须是 JPEG 或 PNG。勾选 重置(Reset)恢复默认图片。 - 注意:服务器会下载这张图(30 秒超时)并替换
/var/www/openmediavault/assets/images/下对应的文件,用dpkg-divert保护,OMV 升级不会把它覆盖回去。提交后立即生效,不需要点黄色提示条上的应用,看不到变化时清浏览器缓存。
hosts:自定义主机名映射
- 包名与来源:
openmediavault-hosts,官方。 - 菜单:
网络 → 主机(Network → Hosts)。 - 做什么:一个文本框 自定义条目(Custom entries),按
/etc/hosts的格式写,每行一条,例如192.168.2.20 backup.lan backup。保存、应用后,OMV 在重新生成/etc/hosts之后把这些行追加到末尾,前面加一行# User-defined entries.。 - 注意:不要手改
/etc/hosts,OMV 在部署主机名和网络时会重写它。你写在文本框里的以#开头的注释行会被丢弃。
envvars:环境变量
- 包名与来源:
openmediavault-envvars,官方。 - 菜单:
系统 → 环境变量(System → Environment Variables)。 - 做什么:用表格列出、新建、编辑、删除 OMV 的环境变量,等于
omv-env命令的图形界面。变量保存在/etc/default/openmediavault。新建时 名称 从可用的变量里选。哪些变量有用、怎么用,见 环境变量。 - 注意:改完要点工具栏上的 应用(Apply,播放图标)才生效,它会依次运行
omv-salt stage run prepare、omv-salt stage run deploy,再重启omv-engined,也就是重新部署所有服务,要等一段时间,期间 Web 界面会短暂不可用。选没人在用 NAS 的时间。变量值是明文,不要放密码。
snmp:SNMP 代理
- 包名与来源:
openmediavault-snmp,官方,依赖snmpd。 - 菜单:
服务 → SNMP(Services → SNMP)。 - 做什么:让监控系统(Zabbix、LibreNMS、Prometheus 的 SNMP 采集等)读取 NAS 的数据,见 外部监控。字段有 位置、联系、版本(默认 SNMP 1/2c,可选 3)、团体(Community,默认
public)、v3 的用户名、安全级别(不认证不加密、认证不加密、认证并加密)、认证类型(默认 MD5,可选 SHA)和加密类型(默认 DES,可选 AES),以及 Trap。 - 注意:生成的配置让整个对象树对客户端只读开放。版本 1/2c 下来源地址不受限制,任何能访问 UDP 161 的主机,只要知道团体字符串就能读。
public是人人知道的默认值,用 1/2c 至少要改掉它,并只在局域网里使用;要更稳妥,用版本 3、选 认证并加密,认证选 SHA、加密选 AES。Trap 的端口按接收端填,SNMP Trap 通常用 162。
tftp:TFTP 服务
- 包名与来源:
openmediavault-tftp,官方,依赖tftpd-hpa。 - 菜单:
服务 → TFTP(Services → TFTP)。 - 做什么:提供 TFTP,常用于网络启动(PXE)、路由器和交换机上传固件、备份配置。字段有 端口(默认 69)、共享文件夹、块大小(默认 512,范围 512 到 65464)、重试超时(默认 1000000 微秒)、允许创建新文件(默认关,关闭时只有已经存在的文件才能被上传)和扩展选项。
- 注意:TFTP 没有任何认证和加密,任何能访问 69 端口的设备都能读这个共享文件夹。只放需要公开的文件,只在隔离的网络里开,用完关闭。要允许上传新文件,界面提示共享文件夹必须是公开可写的,权限很宽,更要克制。
diskstats:磁盘 I/O 图表
- 包名与来源:
openmediavault-diskstats,官方,要求 OMV 8.5.11 及以上。 - 菜单:
诊断 → 性能统计 → 磁盘 I/O(Diagnostics → Performance Statistics → Disk I/O)。 - 做什么:对已挂载的文件系统所在的磁盘,记录读写速率并画图。没有设置页。靠 collectd 采集,所以
系统 → 监测(System → Monitoring)要保持勾选,它默认就是开的。 - 注意:统计按内核设备名(
sda、nvme0n1)记录。插件自己提醒:设备名在重启后必须稳定,否则统计会错位,需要你自己写 udev 规则固定设备名。
wetty:浏览器里的终端
- 包名与来源:
openmediavault-wetty,官方,依赖podman、catatonit、nftables。 - 菜单:
服务 → WeTTY(Services → WeTTY)。 - 做什么:在浏览器里提供一个 SSH 终端。字段有 已启动、端口(默认 2222)和 证书。容器里的 WeTTY 通过宿主机的 SSH 服务登录,端口取自
服务 → SSH(Services → SSH),所以要先启用 SSH,登录用的账号要在_ssh组里,见 SSH 与 SFTP 访问。 - 运行方式:Podman 容器,镜像
docker.io/wettyoss/wetty:latest,前面总有一个 Caddy 容器,用环境变量OMV_WETTY_APP_CONTAINER_IMAGE可以换镜像地址。容器用本地已有的镜像启动,不会自动更新。 - 注意:不选证书就是明文 HTTP,登录密码和终端内容都在网络上裸奔,等于把 SSH 的保护拆掉。只在局域网用,选好证书;不要映射到公网。
omv-extras 插件
apttool:在界面里装卸软件包
- 包名与来源:
openmediavault-apttool,omv-extras。 - 菜单:
服务 → Apt 工具(Services → Apt Tool),四个标签:软件包(Packages)、搜索(Search)、已安装(Installed)、保持(Hold)。 - 做什么:在 搜索 里找到软件包,加到 软件包 列表,再用 工具(Tools)菜单对它安装(Install)、卸载(Remove)、保持(Hold,不让升级)和取消保持(Unhold)。列表里有 OMV dependency 列,标出 OMV 依赖的包,插件会阻止卸载它们。适合配合 omv-extras 加进来的软件源安装软件。
- 注意:别乱点卸载,卸载一个被许多包依赖的软件包会连带移除一堆东西。每个条目有 Backports 选项,官方文档提醒不要从 Backports 装软件。装之前先看 安装、更新与卸载插件 和官方的警告:不要装
apache,会导致openmediavault被卸载。
anacron:不一定一直开机的计划任务
- 包名与来源:
openmediavault-anacron,omv-extras。 - 菜单:
服务 → Anacron(Services → Anacron)。 - 做什么:普通的 cron 只在机器开着、到点的那一刻才执行;anacron 按周期补做,机器关着错过了,下次开机后补上。适合夜里关机的 NAS。字段有 已启动(默认勾选)、周期(每天、每周、每月)、延迟(Delay,开机后多少分钟再执行,0 到 1440)、标识、用户、命令、发送 Email 和注释。
- 注意:条目写进
/etc/anacrontab里 OMV 自己管理的那一段(标记为omvanacron),不要手改。anacrontab 没有「用户」这一列,按源码判断,任务实际以 root 运行,表单里的 用户 只用于邮件的收发地址。一行命令的任务用它;多行脚本用 scripts 插件。
locate:按文件名搜索
- 包名与来源:
openmediavault-locate,omv-extras,依赖plocate。 - 菜单:
服务 → 位置(Services → Locate,官方中文译作「位置」)。 - 做什么:搜索框里输入至少 3 个字符,按文件名在整个文件系统里搜索,不区分大小写,最多显示 500 条。工具栏的 更新(Update)按钮运行
updatedb重建索引。 - 注意:新建的文件在下一次索引更新之前搜不到,点 更新。结果会列出系统里所有路径,只有管理员能用。
resetperms:重置共享文件夹权限
- 包名与来源:
openmediavault-resetperms,omv-extras,只依赖 OMV 本身。 - 菜单:
服务 → 重置权限(Services → Reset Permissions)。 - 做什么:页面列出所有共享文件夹,列有 共享文件夹(Shared folder)、被谁使用中(In use by)、路径(Path)和 当前权限(Current Perms)。当前权限 只显示共享文件夹顶层目录的属主、属组和权限位,看不出里面文件的情况。选中一行,点 重置权限(Reset permissions),在 权限(Permissions)里选一种组合,需要时勾选 清除 ACLs(Clear ACLs),再点 重置(Reset)。
- 怎么改:点 重置 后立即执行,不经过黄色提示条。脚本
/usr/sbin/omv-resetperms(普通 shell 脚本,可以先读一遍)对这个共享文件夹的整个目录树依次做三件事:勾选了 清除 ACLs 时,先运行setfacl -Rb,删掉所有扩展 ACL 条目,包括目录上的默认 ACL;再把属主不是 root、或属组不是users的文件和目录统一改成root:users,组名取自环境变量OMV_USERMGMT_DEFAULT_GROUP,默认是users;最后把目录和文件的权限分别设成下表的值。步骤记在/var/log/omv-resetperms.log,不会逐个记录被改的文件。
权限 下拉框的每个选项,对应的目录和文件权限位如下。对应关系写死在脚本里,文件一律不带执行位。管理员 指属主 root,用户 指 users 组的成员,其他 指组外的所有人:
| 选项 | 目录 | 文件 |
|---|---|---|
| 管理员 - 读/写,用户 - 无权限,其他 - 无权限 | 700 | 600 |
| 管理员 - 读/写,用户 - 只读,其他 - 无权限 | 750 | 640 |
| 管理员 - 读/写,用户 - 读/写,其他 - 无权限 | 770 | 660 |
| 管理员 - 读/写,用户 - 只读,其他 - 只读 | 755 | 644 |
| 管理员 - 读/写,用户 - 读/写,其他 - 只读 | 775 | 664 |
| 任何人 - 读/写 | 777 | 666 |
要恢复 OMV 的默认状态,选第五项(目录 775,文件 664)。第六项等于完全放开,不要用。
看谁在引用共享文件夹。 被谁使用中 这一列列出配置里还引用这个共享文件夹的地方,形如 services->smb->shares->share。OMV 在还有服务引用共享文件夹时不让删除它,要删它,或者要卸载它所在的文件系统,先看这一列。插件还装了只读的命令行工具 omv-showsharedfolder,查的是同一类信息。在 OMV 的 shell 里以 root 按共享文件夹的名称(不是路径)查:
sh
# 在 OMV 的 shell 里执行(root),只读
omv-showsharedfolder <共享文件夹名称>每行一个引用位置。没有任何输出,说明没有找到别处的引用;提示 No entry found for search string,说明没有这个名称的共享文件夹,名称区分大小写。引用也可能来自已经卸载的插件的残留,排查步骤见 删不掉共享文件夹。
- 注意:
- 所有改动都是递归的,作用于这个共享文件夹下的全部文件和子目录。没有试运行,也不能一键撤销,改错只能靠备份恢复,ACL 的备份和恢复见 ACL 详解。
- 属主会被统一覆盖。各用户、容器(PUID)、
www-data等原来建的文件,属主都会变成root:users,不适合需要各自属主的数据。文件的执行位也会被去掉,共享里的脚本和程序要自己恢复执行权限。 - 不勾选 清除 ACLs 时,已有的 ACL 条目会保留,但改权限位会同时改写 ACL 的 mask,命名用户和组实际生效的权限不会超过上表里 用户 那一档。
- 它只改文件系统层的权限,不改 SMB、NFS 等服务层的设置,两层里更严的那个生效。
- omv-extras wiki 的警告:不要改安装系统的那块盘上的权限,否则系统可能无法使用,要重装;同样不要改 Docker 的安装目录和容器的持久化数据目录,否则可能让系统或容器无法使用。
- 脚本改属主那一步没有排除符号链接。按
chown默认跟随符号链接的行为推断,共享文件夹里指向别处的符号链接,其目标也会被改成root:users,这一点没有实测。共享里有符号链接时,先弄清楚它们指向哪里。 - 权限模型见 三层权限。
iperf3:网络吞吐测试
- 包名与来源:
openmediavault-iperf3,omv-extras,依赖iperf3。 - 菜单:
服务 → iPerf3(Services → iPerf3),两个标签:设置(Settings)和 Schedule。 - 做什么:设置 里只有一个 启用,启用后
iperf3以服务端模式运行,默认端口 5201(iperf3 的默认值,插件没有端口设置)。在客户端电脑上运行iperf3 -c <NAS 地址>就能测 NAS 的网络吞吐。Schedule 标签用来定时测别的服务端:字段有 Server、Reverse(服务端发、本机收)、Verbose、json、Log(追加到/var/log/omv-iperf3-jobs.log)、执行时间和发送邮件。测速方法和怎么读结果见 性能测试。 - 注意:iPerf3 服务端没有认证,也会占满带宽。只在测试时启用,测完关闭,不要放到公网。
cterm:容器终端
- 包名与来源:
openmediavault-cterm,omv-extras,依赖python3-flask、python3-flask-socketio、python3-pam。Compose 插件部署时默认会把它装上,所以你可能已经有它,只是没启用。 - 菜单:
服务 → CTerm(Services → CTerm)。 - 做什么:在浏览器里进入容器的终端:Docker 容器、KVM 插件管理的 LXC 容器,以及 MicroVM 的控制台。字段有 启用、Host shell(在容器列表里加一个宿主机终端的选项)、Reverse proxy(经 OMV 自己的 Web 服务器提供,需要填 Base path)、Host(默认
0.0.0.0)、Port(默认 5000)、Auto-login secret 和 Auto-login user。 - 注意:登录的用户必须在
cterm组里,这个组由插件创建。服务以 root 运行,能docker exec进任何容器,所以cterm组的成员相当于拥有管理员权限,只给管理员。Web 界面启用了 SSL 时它用同一张证书,否则是明文 HTTP。默认监听所有地址,不要映射到公网。
imagecheck:容器镜像更新检查
- 包名与来源:
openmediavault-imagecheck,在 omv-extras 的软件源里,包的维护者写的是 OpenMediaVault Plugin Developers;源码和更新日志在个人作者 hackitz 的仓库hackitz/openmediavault-imagecheck,不是 omv-extras 组织自己的仓库。依赖openmediavault-compose和python3。 - 菜单:
服务 → Image Check(Services → Image Check,官方中文没有译名)。仪表盘上还有一个小部件,标题是 Docker Image Updates,按容器显示update(有更新)、current(已是最新)或n/a(无法检查)。 - 做什么:对每个正在运行的容器,把本机镜像的摘要(digest,即实际拉下来的那一份)和镜像仓库里同一个标签当前的摘要对比,不一样就提示有更新。只检查,从不拉取、重建或改变任何东西。 列表有 Container(容器)、Repository(仓库)、Tag(标签)、Update available(有更新)和 Note(备注),Local digest(本地摘要)和 Registry digest(仓库摘要)两列默认隐藏。查仓库用的是 Compose 插件装在
/usr/local/bin/regctl的regctl,只取摘要,不拉镜像。 - 怎么运行:安装时在
系统 → 计划任务(System → Scheduled Tasks)里注册了一个每天 02:00、以 root 运行omv-imagecheck --refresh的任务,可以改时间。结果缓存在/var/lib/openmediavault/imagecheck.json,页面和小部件读的都是这份缓存。工具栏的 Check now 按钮立即检查一次。 - 注意:只检查正在运行的容器。按摘要固定的镜像(
镜像名@sha256:...)和本地构建的镜像会被列出,但在 Note 列标为不可检查,不参与比较。查询失败(被 Docker Hub 限流、私有仓库没有在主机上docker login、网络问题)也记在 Note 列,不会被当成「有更新」。Docker Hub 对匿名查询有频率限制,所以一天查一次。Docker 不可用,或者找不到regctl时,整次检查会失败并报错;regctl由 Compose 插件提供,缺了就重装 Compose 插件。真正更新容器见 更新与备份容器。
常见问题
装完插件,菜单里没有它。 强制刷新浏览器(Ctrl+Shift+R),omv-extras 的插件还要先在 系统 → 插件 里点 检查是否有新插件,见 插件装完界面不对。
想知道某个插件是不是在你的 OMV 8 上能装。 以 系统 → 插件 里列出的为准,总表见 插件与应用。
想自己动手改这些插件管理的文件。 不要,它们都由 Salt 生成,下一次应用会覆盖。要加选项,用界面上的 扩展选项,或见 Salt 部署与自定义配置。
参考资料
- 官方文档:Software & Update Management(软件源和安装软件的警告)
- omv-extras wiki:Reset Permissions、Anacron(OMV 6 页面,思路适用)、APT tool(OMV 6 页面,菜单以 8.x 界面为准)
- 官方插件源码:openmediavault 仓库的 deb 目录;omv-extras 插件源码在 OpenMediaVault-Plugin-Developers 组织下;imagecheck 的源码在 hackitz/openmediavault-imagecheck