网上存在各类通过命令行编辑深藏在 NAS 文件系统深处的某配置文件而实现某些高级功能的方法,就连群晖官方的技术支持也会提供这种方案。
- 控制台操作用户不友好
- 配置文件路径多,而且没有官方文档说明,往往是爱好者自己发现
- 修改的配置文件在套件或系统更新后可能被覆盖,导致配置失效甚至软件故障
- 修改的这部分配置无法保存、备份
- 修改这类文件往往很危险,容易出错
这类配置非常多,以下举例说明:
套件或功能名称 | 需要开放的高级配置 | 使用场景 |
---|---|---|
WebStation 和 Reverse Proxy | Nginx 或 Apache 的路由规则配置 | 同一域名的不同路径路由到不同应用,例如 example.com/gitlab 反向代理到 GitLab 套件同时 example.com/redmine 代理到 RedMine 套件 |
VPN Server 中 OpenVPN | 路由规则推送的配置 | 从公网拨 VPN 回家,向客户端推送 DHCP option 以及内网路由规则 |
Terminal | 基于密钥的认证以及端口转发的开启等 | 通过 SSH 访问 NAS,相比帐号密码认证,密钥认证方便又安全。开启 端口转发 可以让 NAS 作为跳板机访问内网其他资源 |
Docker | Docker Engine API 开关 | 让 Portainer IronFunctions 等工具能够接管 NAS 的 Docker Daemon |
以上配置太多,大多可能也只有高级用户会用到,短期没办法一一实现也能够理解,这里有个折中的方案:
大多数开源软件的配置都能通过较为简单的方式分散在多个文件中,例如在主配置文件中使用 include
等关键字引用其他文件中的配置内容。
如果群晖的上述套件能够提供一个简单的 自定义配置
选项,这个选项是一个文本框(或文件路径),文本框或文件内容会被 include
到默认配置中,这样配置可以由用户自己来决定,实现相对容易,高级用户可以灵活使用,普通用户默认隐藏掉即可。
Package Center
中没有启动的套件更新时会要求先启动依赖的其他套件(如果出于某种原因必须这样,提供按钮一键启动所有依赖项可行吗?)- 例:套件
DokuWiki
依赖Apache
,NAS 上只安装了DokuWiki
但(包括Apache
也)没有启动,这时更新DokuWiki
会要求启动Apache
- 例:套件
Calendar
不支持push
Drive
的同步对小文件不友好,放几个 git repo 永远同步不完。Let’s Encrypt
HTTPS 证书不支持 80 端口以外的认证方式和 wildcard 域名,请多考虑大陆网络环境- 需要套件级别或系统级别的代理配置(大陆网络环境)
Docker
无法轻松全量(包括容器的数据、配置、外部 volume、image、network)备份Docker
支持按同样配置基于更新版本的 image 重建容器(即更新),具体可参考 Portainer 对容器的更新功能WebStation
不支持PHP
以外的其他后端Hyper Backup
不支持AFP
和SMB
协议作为Destination
- 移动端应用合并可能不太现实,但登陆和 2FA 验证是否能统一,例如只在一个应用中登陆即可通过应用间交互授权其他应用(类似天猫通过淘宝登陆),现状是单个应用的使用频率低,结果几乎每次都要重新登录。