外观
时间、时区与主机名
这一篇做两件小事:让 OMV 的时钟自动校准,给它起一个以后不想改的名字。时间错了,更新、证书、日志、计划任务都会出怪问题;名字改了,网络里所有按旧名字访问它的电脑都要重新连。早点定好,省事。
改主机名和时区会牵连别的东西
- 影响范围:改主机名和域名会让 Samba、Avahi(mDNS)、邮件和
/etc/hosts重新部署。电脑上用旧名字映射的网络驱动器、书签、.local地址都会失效。改时区会改变所有计划任务、SMART 测试的执行时刻,也会改变日志里的时间。 - 前置条件:没有正在进行的 SMB 传输;知道哪些客户端是按名字访问这台 NAS 的。
- 怎么回退:把主机名或时区改回去,保存并应用。已经断掉的客户端映射,改回旧名字后重连即可。
开始之前
- 装好系统,能登录 Web 界面,见第一次登录。
- OMV 8 里时间同步用的是 chrony,不是 systemd-timesyncd。
- 界面没有手动设置日期和时间的字段,只能选时区、开关 NTP 和指定时间服务器。所以要让机器能连上 NTP 服务器。
设置时区和时间同步
- 打开
系统 → 日期和时间(System → Date & Time)。 - 时区(Time zone):选你所在的时区,比如
Asia/Shanghai、Asia/Tokyo。安装时选的时区会带到这里,对的话不用改。 - 勾选使用 NTP 服务器(Use NTP server)。
- 时间服务器(Time servers):默认是
pool.ntp.org,多个用逗号隔开。 - 允许的客户端(Allowed clients):默认空。填了 CIDR 格式的网段或主机名,OMV 就会对这些客户端提供 NTP 服务,一般的家庭 NAS 用不着,留空。
- 点保存,再点黄色提示条上的应用。
关于时间服务器:
- NTP Pool 项目按国家提供区域域名,格式是
<国家代码>.pool.ntp.org,例如cn.pool.ntp.org、jp.pool.ntp.org,离你近的通常延迟更低。也可以填你信任的其他 NTP 服务器的域名。 - 填的每一项,OMV 8 都会在 chrony 的配置里写成一行
pool <地址> iburst。8.0 起默认用pool指令,由环境变量OMV_CHRONY_SERVER_POOL_DIRECTIVE控制,想改成server指令见环境变量。 - chrony 配置里还有
makestep 1 3:开机后的前三次校准里,如果时间差超过 1 秒,会直接跳变而不是慢慢调。所以重启后的时间一般很快就对了。 - 机器所在网络不让访问外面的 NTP(UDP 123 端口)时,同步会失败。要么放行,要么指向你内网里可用的 NTP 服务器。
OMV 的硬件时钟用 UTC
OMV 设置时区时按「硬件时钟是 UTC」处理。这对 Linux 是标准做法,只有和 Windows 装在同一台机器上双系统才会冲突,而 NAS 不会。
给 NAS 起名字
- 打开
网络 → 常规(Network → General)。 - 主机名(Hostname):这台机器在网络里的名字。可以用字母、数字和连字符,最长 63 个字符,不能以连字符开头或结尾,不能含点、下划线和空格。OMV 在系统里设置主机名时会转成小写。
- 域名(Domain name):必填。界面的提示是:如果系统属于没有注册域名的私有网络,按 ICANN 的建议用
internal。 - 点保存,再应用。
关于域名,ISO 安装器默认填的是 local。官方界面的提示建议用 internal,因为 .local 是留给 mDNS(Bonjour)的特殊后缀。OMV 自己也对 local 有特殊处理:给网卡写 DNS 搜索域时,会跳过它。家里没有自己的域名,就改成 internal。你有自己拥有的域名(比如 home.example.com)也可以填。
起名的建议:
- 短、好记、全小写,比如
nas、omv1,以后每天要敲、要认。 - 起好就别改。SMB 共享的地址、备份任务的目标、mDNS 的
.local地址、邮件里的发件主机名都和它有关。 - 一个网络里不要有两台同名的机器。
改主机名或域名后,应用时会部署 hostname、hosts、samba、avahi、postfix 和 systemd-networkd 这几个模块。已经启用了 HTTPS 的,证书里可能还是旧名字,处理见证书。
时间不对会出什么问题
| 现象 | 原因 |
|---|---|
更新时报 Release file ... is not valid yet,或签名已过期 | APT 校验软件源索引的时间戳 |
| 浏览器报证书「尚未生效」或「已过期」 | HTTPS 证书有有效期,系统时间在范围外 |
| 两步验证的验证码总是错 | TOTP 验证码按当前时间计算,双方时间要接近,见两步验证 |
| 日志的时间和实际对不上 | 排查故障时没法对时间线 |
| 计划任务、SMART 测试、备份在奇怪的时间跑 | 它们按系统时间和时区执行 |
| 同步和备份工具误判文件新旧 | 它们靠文件的修改时间比较 |
检查结果
在 OMV 的 shell 里:
sh
# 在 OMV 的 shell 里执行
timedatectl
chronyc trackingtimedatectl里的Time zone是你选的,System clock synchronized是yes。NTP service那一行反映的是 systemd-timesyncd,而 OMV 用的是 chrony,所以它显示n/a或inactive都不代表没同步,看System clock synchronized那一行。chronyc tracking能输出Reference ID和System time等内容,说明 chrony 在和服务器同步。想看它连着哪些服务器,用chronyc sources。- 在
网络 → 常规保存并应用之后,在 OMV 的 shell 里执行hostname,输出的是你设的小写主机名。 - 在另一台电脑上用新名字访问,比如
ping <主机名>.local,能通。mDNS 解析不是每台电脑都支持,不通就用 IP。
常见问题
时区选对了,界面里的时间看起来还差几小时。 仪表盘上的「系统时间」小部件显示的是 OMV 自己的当前时间,而通知栏里任务的相对时间等,是浏览器按你电脑的区域设置换算后显示的。判断 OMV 的时间对不对,以 timedatectl 的输出为准,再检查你电脑的时区。
chronyc tracking 报错,或者同步不上。 确认勾了使用 NTP 服务器,时间服务器没填错,网络能出去,DNS 正常。可以用 chronyc sources 看服务器是不是可达。
改了主机名,Windows 上的映射驱动器打不开了。 重新用新名字或 IP 映射。如果想让大家少改,别改名字,或者以后固定用 IP 访问。见局域网发现。
我想在界面里手动改时间。 OMV 8 没有这个功能,时间交给 NTP。确实无法联网的离线环境,建议在局域网里架一台 NTP 服务器,OMV 指向它。
在虚拟机里时间老是漂移。 确认虚拟机没有同时开启「与宿主机同步时间」和 NTP 两种机制互相打架,以虚拟化平台的文档为准。