树莓派安装完系统之后,它的时间是不对的,这会导致一些依赖时间的东西无法运作,例如 apt 无法更新,因为证书的校验是时间敏感的,所以会出现更换了国内源后,直接 apt update 会提示证书不合法的问题。这就需要我们将系统时间调正确。

针对时间同步的问题,Ubuntu 默认使用 timedatectl/timesyncd 处理同步的问题。

日期与时间展示

date 命令可以直接显示 Linux 系统的时间:

  1. ubuntu@ubuntu:~$ date
  2. Sat Dec 26 01:57:07 UTC 2020

时区查看与设置

树莓派安装完之后,它的时区并不是东八区,因此我们需要将时区更改一下。

timedatectl 命令可以查看和更改系统的时区:

  1. ubuntu@ubuntu:~$ timedatectl status
  2. Local time: Sat 2020-12-26 02:44:36 UTC
  3. Universal time: Sat 2020-12-26 02:44:36 UTC
  4. RTC time: n/a
  5. Time zone: Etc/UTC (UTC, +0000)
  6. System clock synchronized: no
  7. NTP service: active
  8. RTC in local TZ: no

可以看出,UTC 的偏移量为 +0000,而我们所处的是东八区,因此 UTC 偏移量应该是 +0800。在设置时区之前,得找有什么时区。一般来说我们使用的都是上海的时区,timedatectl 的 list-timezones 命令可以获取所有时区,下面的展示我只筛选上海的时区:

  1. ubuntu@ubuntu:~$ timedatectl list-timezones | grep -i shanghai
  2. Asia/Shanghai

找出时区名称为 Asia/Shanghai 之后就可以使用 timedatectl 进行设置了:

  1. ubuntu@ubuntu:~$ timedatectl set-timezone "Asia/Shanghai"

设置完毕之后,在使用 timedatectl 查看一下结果:

  1. ubuntu@ubuntu:~$ timedatectl
  2. Local time: Sat 2020-12-26 11:11:46 CST
  3. Universal time: Sat 2020-12-26 03:11:46 UTC
  4. RTC time: n/a
  5. Time zone: Asia/Shanghai (CST, +0800)
  6. System clock synchronized: no
  7. NTP service: active
  8. RTC in local TZ: no

可以看到 Time zone 部分已经改成东八区了。

网络同步

系统时间与网络同步需要使用到 chrony 这个应用,执行 sudo apt install chrony 进行安装。随后修改 /etc/chrony/chrony.conf 配置,修改默认的 pool 服务器地址,修改为 NTP Pool Project 上中国区域的 ntp 服务器地址。

随后 sudo systemctl restart chrony.service 重启 chrony 服务即可。

参考资料