跳转到内容

小工具合集 ​

这一篇把 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
apttoolomv-extras在界面里搜索、安装、卸载、保持软件包8.0
anacronomv-extras给不是 24 小时开机的机器用的计划任务8.0
locateomv-extras按文件名搜索整个文件系统8.0
resetpermsomv-extras递归重置共享文件夹权限、清除 ACL,列出谁在引用共享文件夹8.0.2
iperf3omv-extrasiperf3 服务端和定时测速8.0
ctermomv-extras浏览器里进入容器的终端8.0.5
imagecheckomv-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 组的成员,其他 指组外的所有人:

选项目录文件
管理员 - 读/写,用户 - 无权限,其他 - 无权限700600
管理员 - 读/写,用户 - 只读,其他 - 无权限750640
管理员 - 读/写,用户 - 读/写,其他 - 无权限770660
管理员 - 读/写,用户 - 只读,其他 - 只读755644
管理员 - 读/写,用户 - 读/写,其他 - 只读775664
任何人 - 读/写777666

要恢复 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 部署与自定义配置。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。