Debian 12 设置时区与同步时间

前言

本文主要介绍如何在 Debian 系统上设置时区与同步时间,适用于 Debian 11 Bullseye、Debian 12 Bookworm 发行版。

设置时区

一般全自动安装好的 Debian 是 UTC 时间,与北京时间差 8 小时,所以最好将时区设置为常用的时区,这样方便使用与阅读。timedatectl 是一个新工具,它作为 systemd 系统和服务管理器的一部分,代替旧的传统的用在基于 Linux 分布式系统的 sysvinit 守护进程的 date 命令。timedatectl 命令可以查询和更改系统时钟和设置,可以使用此命令来设置或更改当前的日期、时间和时区,或实现与远程 NTP 服务器的自动系统时钟同步。

  • 查看所有可用的时区
1
timedatectl list-timezones
  • 设置当前系统的时区为上海
1
sudo timedatectl set-timezone "Asia/Shanghai"
  • 查看当前系统的时区
1
timedatectl status

同步系统时间

一般重新设置系统时区后,现实时间会与系统时间之间会有误差,这时候建议使用 systemd-timesyncd 或者 chrony 来解决时间差异的问题。Debian 12 默认使用 systemd-timesyncd,但也可以选择 chrony(比 ntpd 更轻量且稳定)。特别注意:timedatectl 并不兼容 ntpd 等组件,请不要安装 ntpd 等组件,以免时间同步失效。

同步方式一

第一种系统时间同步方式,使用 systemd-timesyncd 同步系统时间。

  • 安装 systemd-timesyncd 服务
1
sudo apt install systemd-timesyncd
  • 更改配置文件,添加 NTP 服务器(添加一行 NTP 服务器地址)
1
sudo vi /etc/systemd/timesyncd.conf
1
2
3
4
5
[Time]
NTP=pool.ntp.org 0.asia.pool.ntp.org 1.asia.pool.ntp.org 2.asia.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
  • 重启 systemd-timesyncd 服务
1
sudo systemctl restart systemd-timesyncd
  • 查看 systemd-timesyncd 服务的运行状态
1
sudo systemctl status systemd-timesyncd
  • 启用时间自动同步
1
sudo timedatectl set-ntp true
  • 查看时间同步状态
1
timedatectl status

当看到 System clock synchronized: yes 则表示时间同步成功:

1
2
3
4
5
6
7
8
               Local time: Fri 2024-03-07 12:34:56 UTC
Universal time: Fri 2024-03-07 12:34:56 UTC
RTC time: Fri 2024-03-07 12:34:56
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

或者:

1
2
3
timedatectl timesync-status

timedatectl show-timesync --all

同步方式二

第二种系统时间同步方式,使用 chrony 同步系统时间。

  • 安装 chrony 服务
1
sudo apt install chrony
  • 开机自动启动 chrony 服务
1
sudo systemctl enable --now chronyd
  • 更改配置文件,找到 pool 或者 server 相关行,更改为以下内容:
1
sudo vi /etc/chrony/chrony.conf
1
2
3
server ntp.aliyun.com iburst
server time.google.com iburst
server time.windows.com iburst
  • 重启 chrony 服务
1
sudo systemctl restart chronyd
  • 查看 chrony 服务的运行状态
1
sudo systemctl status chronyd
  • 查看时间同步状态
1
chronyc tracking